継続は力なり

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

2/12~2/17 AWSブログ

タダです。

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

1、Amazon Lex 対話ボックスの対応を強化

  • Lexのチャットボットの対話の応答が直接編集できるようになりました
  • Webページより編集し、プレビューでの確認まで可能です

2、New – DynamoDB の保存時の暗号化

  • DynamoDBのテーブル作成時に暗号化オプションを有効化すれば、データの保存時に暗号化を行ってくれます
    • 暗号化にはKMSが使われます
  • 提供リージョンが米国東部 (バージニア北部)、米国東部 (オハイオ)、米国西部 (オレゴン)、欧州 (アイルランド)です

3、ご利用の WordPress ブログに新しい Amazon Polly の声を

4、AWS 深層学習 AMI は TensorFlow と Microsoft Cognitive ツールキット用の Volta GPU に対するより高速のトレーニングを提供します

CUDA 9 によるフレームワーク:

Apache MXNet 1.0 (Gluon 付き)

Caffe2 0.8.1

Microsoft Cognitive ツールキット (CNTK) 2.4

PyTorch 0.3

TensorFlow 1.5

Theano 1.0

CUDA 8 による Caffe 1.0

Keras 1.2.2 と Keras 2.1.3

AMI は、次のツールにより提供されるモデルのサービスとデバッグ機能も含みます。

Apache MXNet Model Server 0.1

TensorFlow Serving 1.4.0

TensorBoard 1.0.0

5、【 AWS 新リージョン】 AWS 大阪ローカルリージョンが本日より利用可能になりました

  • 昨年のAWS Summit Tokyoで発表された大阪ローカルリージョンの利用ができるようになりました
  • 現在は申請及び審査で許容されたお客様しか利用できないようです

6、Amazon Relational Database Service – 2017 年を振り返って

  • RDSのアップデートまとめ記事です(80個ものアップデートがありました)

7、AWS Glue and SneaQLを使ったAmazon Redshift へのUpsert

  • Full 360社ではGlueでS3にいれたデータをRedshiftにロードし、ECSで動かすSneaQLでRedshiftで操作するようなアーキテクチャを行っているとのことです

8、AWS Glue : ネストされた JSON を Relationalizeトランスフォーム

  • ネストされたJSONの変換をRelationalizeで行って、JSONデータをフラット化するためにGlueを使う紹介記事です

9、AWS Cloudtrail Logs を AWS Glue と Amazon Quicksight 使って可視化する

  • CloudTrailのログをGlueとQuickSightを使って可視化するための方法の紹介記事です
    • 可視化するデータはAthenaで抽出します

10、Amazon EC2 テストポリシー

  • 負荷試験の申請方法の紹介記事です

11、AWS SCT と AWS DMS を使ってMySQLから Amazon Aurora に移行する方法

  • MySQL を SCTとDMSを使ってAuroraに移行する方法の紹介記事です
    • 特に以下のような移行を行う場合に有効です

      バージョンが違うことでネイティブのバイナリログレプリケーションができないときや、追加のデータ変換要件があるときにこの方法が使えます

12、AWS Database Migration Service を使用した Amazon RDS for SQL Serverの継続的なレプリケーションの紹介

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

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

タダです。

今回は5章の誤差逆伝播法の学習に関する勉強まとめです。

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

目次

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

5.1

  • 重みパラメータの勾配の計算を効率よく行う手法である、誤差逆伝播法について学ぶ
  • 誤差伝播法の理解の方法として、数式による理解と、計算グラフによる理解があり、本書では後者にフォーカスする
    • 計算グラフとは、計算の過程をグラフによって表したもの
  • 順伝播は、計算を左から右へ進めるステップによる手法
    • 逆伝播はは右から左へ計算を進める
    • 逆伝播は、局所的な微分(自分に関係する小さな範囲)を伝達する

5.2

  • 「局所的な部分」を伝達する原理は、連鎖率によるもの
  • 連鎖率とはある関数が合成関数で表される場合、その合成関数の微分は、合成関数を構成するそれぞれの関数の微分の積によって表される

5.3

  • 加算の逆伝播は、入力信号を次のノードへ出力する
  • 乗算の逆伝播は、入力信号の値をひっくり返した値を乗算する

5.4

※順伝播と逆伝播の実装の解説の節のため、省略

5.5

  • 活性化関数の実装として、ReLU関数とSigmoid関数の層を実装する

5.6

参考

次は6章になります。

『Amazon Web Services 業務システム設計・移行ガイド』 を読んだ

タダです。

先日発売された、『Amazon Web Services 業務システム設計・移行ガイド』をKindle版で購入し、読み終えたので所感を書いていきます。

本書の概要について

本書は以下の引用文にありますように、オンプレミスシステムを初めてAWSへ移行する方にとっては様々なエッセンスが得られる本だと思いました。

社内システムのクラウド化を目指す人に!

オンプレミスからクラウドへ!

ECサイトから基幹システムまで、 企業のデータ・サーバをAWSへ移行するための ネットワーク設計・構築、運用・管理のノウハウを紹介

いきなりナウいサーバーレスでシステムを作るとかって話はなく、まずはリフト&シフトでクラウドへ環境をもっていくことにフォーカスしている内容です。

aws.amazon.com

また、本書は、次の様な章立てになっています。

Chapter1 AWSサービスの概要

Chapter2 全体設計(管理方針と移行計画)

Chapter3 アカウント管理と権限付与

Chapter4 ネットワーク接続の設計・構築・維持管理

Chapter5 システム設計とサービスの導入

Chapter6 移行テクニック

Chapter7 運用監視の設計・実施

読み終えての所感

  • 1章で主要なサービスの概要をしることができるので、AWSのとっかかりが得られる。
  • 3章と4章のあたりがAWSアカウント開設後に、利用者の権限を決めたり、ネットワーク設計する上で必要なエッセンスを学べる。
    • 個人的にはCognitoの話が勉強になった。
  • 5章で主要なシステムアーキテクチャAWSで構成する場合に使うサービスを知ることができる。
    • ECサイト構成パターン
    • Web可用性向上パターン
    • コンテンツキャッシュパターン
    • DB可用性向上パターン
    • インメモリキャッシュパターン
    • ジョブサーバーパターン
    • オンプレミスとのハイブリッド構成パターン(私の業務でもよく目にするパターンです)
    • ファイルサーバーパターン
    • 大規模データ分析パターン etc
  • 6章でオンプレミスにあるサーバーからAWSのサービスへ移行するための手段を紹介されている。
  • 7章で運用周りのサービスが紹介されている。
    • 移行して終わりではなく、AWSの運用管理や監視系サービスを組み合わせて運用していく方法が紹介されている。

まとめ

ざっくり所感を書いてみました。

re:Inventに参加して海外のAWSに対する盛り上がりを感じたのですが、日本でも続々とオンプレからクラウドへの移行の話がでてきています。

これからAWSを勉強する必要性を感じている方にとってお薦めしたい本だなと感じました。

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章になります。