継続は力なり

タイトル通り定期的な更新を心掛けるブログです。

2/5~2/10 AWSブログ

タダです。

今週のAWSブログのアップデートをまとめていきます。

1、ClearView Social によるソーシャルシェアリングの影響を測定するための Amazon Comprehend の使用

  • SNS自然言語処理を行うClearView SocialでのComperehendの利用に関する紹介記事です

2、オンデマンドウェビナー「見積もり作成ハンズオン」を公開しました。

  • AWS利用料の見積もり作成ハンズオンの資料公開がされました

3、クイックスタートによるAWSクラウドへのSAP NetWeaverの展開

  • SAP NetWeaverの環境を構築するCloudFormationテンプレートの紹介記事です
  • NATGateway、AutoScaling Group、SAPアプリケーションのEC2群、S3、Route53などをセットアップしてくれます

4、Amazon Aurora: MySQL 5.7互換をリリース

  • Aurora のMySQL 5.7互換バージョンがリリースされました

5、Model Server for Apache MXNet、ONNX サポートと Amazon CloudWatch の組み込みを開始

  • AWSがModel Server for Apache MXNet(MMS)のVersion 0.2をリリースしました
  • 上記のリリースと合わせてCloudWatchへの組み込みも対応しました

6、ポート443でTLS認証を使ったMQTT: なぜ便利で、どのように動くのか

  • AWS IoTで443番ポートを使ったMQTTができるようになりました
  • 通常MQTTは8033番ポートを通信になるが、一般的な通信ポートではないため特別な対応がこれまでは必要でしたが今回のサポートで不要になりました

7、東京リージョンで Amazon Aurora with PostgreSQL Compatibility をご利用可能に

  • 東京リージョンでAurora PostgreSQL互換を利用できる様になりました
    • ついにきました!

8、Amazon Redshiftを使用した高性能ETL処理のベストプラクティス Top 8

  • Redshiftを使った高速なETL処理を行うためのベストプラクティス8つの紹介記事です

    複数の均等なサイズのファイルからデータの COPY Workload Management (WLM) を用いたETL実行時間の改善 定期的なテーブルのメンテナンスの実施 単一のトランザクションで複数ステップの実行 データの一括読み込み UNLOADを利用した大きな結果セットの抽出 アドホックETL処理に Amazon Redshift Spectrumを使用 診断クエリを使用して日常的なETLヘルスの監視

  • ETL処理プロセスとして、データを持つDBからS3にデータをエクスポートし、Redshiftが処理、別のS3に結果を出力する例も紹介されています

以上が今週のアップデートまとめです。

ゼロから始めるディープラーニング 4章

タダです。

今回は4章のニューラルネットワークの学習に関する勉強まとめです。

※記事は理解ができるたびに何度もアップデートしていこうと思います。 www.oreilly.co.jp

目次

なお、各章の内容は次の通りです。

4.1

  • 4章における「学習」 = 訓練データから最適な重みパラメーターの値を自動で獲得すること
    • 指標として損失関数を使う
  • 数字の5を認識するためにはどのような処理が必要か
  • ニューラルネットワークのメリットは全て同じアプローチが可能ということ
  • 訓練データとテストデータの扱いについては注意が必要
    • モデルが汎用的な能力(汎化能力)を引き出せるように訓練データとテストデータは分離して使う
    • とあるデータにだけ過度に学習した状態を過学習という

4.2

  • 損失関数は、一般的には2乗和誤差や交差エントロピーなどを使う
    • 2乗和誤差はデータの差の2乗を求めて、その差を足す
    • 交差エントロピーはデータの差が小さくなるようにする
  • 多数のデータを一気に処理するのは時間がかかるので、小さなデータのグループで処理する方法をミニバッチ学習という
  • ニューラルネットワークの学習では、最適なパラメーター(重みとバイアス)を探索する際に、損失関数の値ができるだけ小さくなるようなパラメーターを探す

4.3

  • 微分とは、ある瞬間の変化の量を表したもの
    • 変化を限りなく0に近づけることを行う
  • 複数の変数からなる関数の微分偏微分という
  • 偏微分をベクトルとしてまとめるものを勾配という
    • 勾配のベクトルが示す方向は、関数の値を最も減らす方向になる

4.4

  • 勾配法では、現在の場所から勾配方向に一定の距離だけ進み、移動した先でも同様に勾配を求めていく
  • 一回の学習でどれだけパラメーターを更新するかという比率を決めることを学習率という
    • 学習率が大きくなる(過学習)と、0より大きくなり、小さすぎても0からマイナス方向に遠ざかる

4.5

  • ニューラルネットワークの学習方法は以下のように行う
    • ステップ1:ミニバッチ
    • ステップ2:勾配の算出 ミニバッチの損失関数を減らすために書く重みパラメーターの勾配を求める。勾配は損失関数の値を最も減らす方向を示す。
    • ステップ3:パラメータの更新 重みパラメータを勾配方向に微小だけ更新する
    • ステップ4:繰り返す ステップ1~3を繰り返す
  • 学習を繰り返していくことで損失関数の値が徐々に下がり、最適な重みパラメータに近づく

参考情報

https://qiita.com/mine820/items/f8a8c03ef1a7b390e372 http://cookie-box.hatenablog.com/entry/2017/05/07/121607

次は5章になります。

1/29~2/4 AWSブログ

タダです。

今週のAWSブログのアップデートをまとめていきます。

1、水門は開いた – EC2 インスタンスのネットワーク帯域幅が増大

  • EC2の帯域幅が増大しました。以下の恩恵が得られます。
    • EC2とS3間の送受信通信量は、帯域幅で最大25Gbps利用できる
    • EC2同士は、同一リージョン内でシングルフロー通信の場合最大 5Gbps、マルチフロー通信の場合最大 25Gbps利用できる
    • クラスタープレイスメントグループのEC2同士は、シングルフロー通信では低レイテンシの10Gbpsを、マルチフロー通信では低レイテンシの 25Gbpsの通信を利用できる
  • 本アップデートはENA対応のAMIに有効で、対象はAmazon Linux、Ubuntu14.04及び16.04、RHEL7.4、SLES12、Windows Server 2008 R2、2012、2012 R2、2016になります

2、AWS DeepLens Lambda 関数と最新 Model Optimizer を深く知り尽くす

  • DeepLensのモデル最適化をLambdaで利用する場合の実装方法を紹介した記事です

3、チャットボットにウェブ UI をデプロイする

  • Lexで作ったチャットbotをWebUIにデプロイできるようになりました
  • CloudFormationでサーバーレスで構築するチェットボットのテンプレートも紹介されています

4、Amazon Comprehend を使用したカスタマーレビューからのセンチメントの検知

  • Amazon.comのレビューコメントをComprehendで分析するアーキテクチャの紹介記事です
    • Athenaでクエリを投げてレポートを生成することもカバーしています
  • ちなみにComprehendのトレーニングデータはAmazon.comのものが大半だそうです

5、Zocdoc は AWS で TensorFlow を使用し患者の信頼を築きます

  • ZocdocというサービスでAWSのDeepLearning用のAMIを使って、KerasとTesorflowを使ってPoCを行った時の紹介記事です
  • 利用者はIDカードの写真をとるだけで保険の適用範囲、保険給付金、自己負担金を計算することが可能とのことです Zocdoc: Find a Doctor, Reviews, & Book Appointments

以上が今週のアップデートまとめになります。

1/22~1/28 AWSブログ

タダです。

今週のAWSブログアップデートまとめをしてきます。

1、Amazon SageMaker BlazingText: 複数の CPU または GPU での Word2Vec の並列化

  • SageMakerのアップデートでBlazingTextの利用ができるようになりました
  • BlazingTextは、Word2Vec 埋め込みを生成するための教師なし学習アルゴリズムになりますが、このブログではWord2Vecの実装する話とSageMakerでの処理の話を紹介しています

2、最新 EC2 Goodies – 起動テンプレートとスプレッドプレイスメント

  • EC2の起動テンプレートの紹介と、EC2起動テンプレートのプレイスメントグループ版である、スプレッドプレイスメントグループの紹介ブログです

3、Microsoft Azure SQL Database から Amazon Aurora への移行

  • DMSをつかってAzure SQL DatabaseからAuroraへの移行紹介記事です

4、AWS データセンターのセキュアな設計について

  • AWSのデータセンター内を見学できるサイトが公開されました
  • AWSのデータセンターは通常見学はできないため、貴重な情報得られるかもしれません aws.amazon.com

5、暗号化されたスナップショットを Amazon Aurora PostgreSQL へ移行可能になりました

  • RDS for PostgreSQLの暗号化されたスナップショットから Aurora PostgreSQL へ移行できるようになりました
  • RDS からAurora へ移行中の間も、データ暗号化を維持できます

6、Amazon RDS for PostgreSQL から Amazon Aurora PostgreSQL リードレプリカを作成可能になりました

  • RDS for PostgreSQLのリードレプリカからAurora PostgreSQLへの移行ができるようになりました
  • この方法でMySQLからAurora MySQLへ移行した方もいるので有用な方法になると思います

7、Amazon Aurora under the hood: Z-order curvesを用いたgeospatial indexの作成

  • 位置情報を扱うアプリケーションのデータベースでAuroraを使う場合のインデックスはどうすべきかを解説する記事です
  • この記事では、「space-filling z-order curves」というインデックスが紹介されています

8、プロセッサの投機的実行 – オペレーティングシステムの更新

  • CPU脆弱性対策の情報のアップデート記事です
  • おおよそのAMIでは今回の対策を行っているので、新規にEC2を構築するときは最新のAMIを使うのがベターでしょう

9、新規 – リージョン間 VPC ピアリング

  • リージョン間でVPCピアリングできる対応リージョンが拡大しました
  • 東京はまだですががが、、、

10、NNPACK ライブラリを使用した Apache MXNet の高速化

  • NNPACK ライブラリを使用して推論を高速化する方法の紹介記事です

11、東京リージョンに新たにアベイラビリティゾーンを追加

  • 東京リージョンに新たにアベイラビリティゾーンが追加されました
  • 現行世代のVPCを使う場合、3つのAZが使えます

12、高い可用性を持つ IBM Db2 データベースをAWS上に構築する

  • IBM DB2AWS上に構築するためのCloudFormationの紹介記事です
  • このCloud Formationテンプレートを使えば、クラスター構成(EC2で)を作れます

13、AWS Glue がScala をサポートしました

  • GlueのETLを行う言語として、Scalaがサポートされました

14、ユニシスメインフレームからAWSへの5ステップでの移行

  • Astadia社が取り組む、ユニシスメインフレームを使ったAWSへの移行の紹介記事です
  • 次の5つのステップを取り組んでいるとのことです

  • 分析 2.デザイン 3.最適化 4.テスト 5.実装

以上が今週のアップデートまとめです。

ゼロから始めるディープラーニング 3章(3.4~3.7まで)

タダです。

今回は3章のニューラルネットワークの勉強まとめです。 ※記事は理解ができるたびに何度もアップデートしていこうと思います。 www.oreilly.co.jp

目次

なお、各章の内容は次の通りです。

3章は広範な内容(個人的に)になっており、一回でまとめられきれそうになかったので、段階的にまとめます。

3.4

  • ニューラルネットワークの計算は行列の計算(内積)としてまとめられる
  • 第一層目の重みは(1)で表現する
    • w 1(次層の1番目のニューロン)2(前層の2番目のニューロン)で表現する
    • 第一層目の重みつき和は次のようにまとめられる
      • a(1) = XW(1) + B(1)
    • 活性化関数をzで表すと以下のようになる
      • z(1) = a(1)
  • 恒等関数とは、出力層の活性化関数として利用される(入力をそのまま出力する)
  • init_network()関数で重みとバイアスの初期化を行い、それらをディクショナリ型の変数networkに格納
  • forward関数では、入力信号から出力へと変換されるプロセスがまとめて実装されている

3.5

  • ニューラルネットワークは分類問題(データがどのクラスに属するか)と回帰問題(ある入力データから連続的な数値の予測を行う)の両方に用いることができる
    • 分類問題ではソフトマック数関数を、回帰問題では恒等関数を使う
  • ソフトマックス関数の実装では、指定関数の計算を行うがその際指定関数の値が容易に大きな値になってしまう(オーバーフロー)から注意
    • オーバーフローの対策としては、入力信号の中で最大の値を用いることが一般的
  • 出力層の数は解くべき問題により適宜変更する

3.6

  • 手書き数字画像の分類を学ぶ(すでに学習は完了している)
    • 推論処理(forward propagation)だけを実装する
  • データセットは、MNISTという手書き数字の画像セット
    • MNISTデータセットは、0から9までの数字画像から構成される
    • 訓練画像が6万枚、テスト画像が1万枚よういされ、学習と推論を行う

3.7

  • ニューラルネットワークの順方向の伝搬の解説を行った
  • ニューロンのへ信号を送信する際に、信号を変化させる活性化関数に大きな違いがある
  • 機械学習の問題は、回帰問題と分類問題に大別できる
  • 出力層で使用する活性化関数は、回帰問題では恒等関数、分類問題ではソフトマックス関数を利用する
  • 分類問題では出力層のニューロンの数を分類するクラス数に設定する
  • 入力データのまとまりをバッチといい、バッチ単位で推論処理を行うことで計算を高速にできる

3章は何度も読み返そうと思います。。 次からは4章になります。