ゼロから作るDeep Learning(5日目)
こんにちは、筋肉めがねです。
折角フランクフルト近郊に住んでいるので、そのあたりのAI事情について、面白い情報を得る度に紹介していきましょう。先日、AI Meetup@Frankfurtに参加してきました。どのプレゼンテーションも面白くあっという間の2時間だったわけですが、中でも面白かったのはCorporate scandalをdetectするAIでした。会社内での同僚とのやりとりであるchat、mailをAIが読み、scandalに発展しそうなコミュニケーションについては、すぐにキャッチし、アラートをあげるというもの。Banking, Financeの分野ですぐにでも使われそうです。
それでは、本日も「ゼロから作るDeep Learning」を進めていきましょう。
本日も3章の続きですね。
前回の記事では、孫悟空は実はステップ関数だった、という事実をお伝えし、そして孫悟空が閾値を設けずに状況に応じて元気玉を放出する、という事がシグモイド関数そのものである、という事を書きました。
本日は、多次元配列、そしてニューラルネットワークの実装について書いていきます。
先ずはoutputです。3層のニューラルネットワークを図で、そして、実装方法をコードで載せます。
このコードで何が実現できてるか、と言うと、入力層のニューロンであるx1, x2にある値を入れ、それを事前に定義された重み、バイアス、および活性化関数(第1層と第2層のh()、出力層のσ())を経て、y1, y2を出力する、という事ができているんですね。これができると何が嬉しいか、と言うと、まだ分かりませんよね。そう、僕も分かりません。いずれ分かるでしょう。
でも、大事な事は、ニューラルネットワークの計算は行列の計算としてまとめて行う事ができる、という事。そして、出力層に使う活性化関数は、回帰問題、分類問題など解きたい問題によって異なる関数を使用する、という事です。これについては、次の記事で書きましょう。
それでは、本日は以上でございます。