現在JavaScriptの設定が無効になっています。このページを利用するにはJavaScriptの設定を有効にしてください。2015の9日目の記事です。一覧はこちらはじめにはじめまして、安藤義裕と申します。ヤフー株式会社データ&サイエンスソリューション統括本部ソリューション本部でプログラマーをしております。趣味はカミさんの手料理です。機械学習で用いられるアルゴリズムの一つにニューラルネットワークがあります。ニューラルネットワークは脳細胞の働きにヒントを得て考えられたものです。今回扱う多層ニューラルネットワークはニューラルネットワークの中間層と呼ばれる部分を多層化したものです。この多層ニューラルネットワークが利用されています。多層ニューラルネットワークは用途に応じて異なるネットワークが利用されます。画像処理では畳込みニューラルネットワーク、自然言語処理では再帰型ニューラルネットワークなどです。歴史を簡単に振り返り、次にシンプルかつ基本的で応用範囲が広い「順伝播型ニューラルネットワーク」を簡単に説明します。次にサンプルデータを使った性能評価の結果を掲載します。本稿では数式を掲載しています。どのような数式に基いてコードが書かれているのかを説明したかったのが理由ですが、多少読みづらいかと思いますので、まずは数式を軽く読み飛ばしてプログラムをご覧いただき、このコードはどうしてこのような記述になっているのだろうと疑問に思われた時に再度数式を確認していただければと思います。最初におわびですが、筆者は機械学習の専門家ではございません。詰めの甘い記述がかなりありますので、しっかりと理論を確認されたい方はぜひ参考文献をあたってみてください。いう用語は通常、多層ニューラルネットワークを利用した機械学習の枠組みを意味するものとして使われています。年代に研究が開始されました。よって学習機能を持つパーセプトロンが発表されました。らによってパーセプトロンが線形分離不可能な問題に対して有効でないことが指摘されるとニューラルネットワークのブームは下火となりました。らによって多層ニューラルネットワークの複雑な微分計算を容易にする誤差逆伝播法に関する論文が発表されたことにより、ニューラルネットワークは再び脚光を浴びることになります。ネットワークを多層にしたことにより発生する勾配消失問題が大きなネックになり、ブームは再度後退することとなりました。よる事前学習の研究によりニューラルネットワークは再度注目を集めることとなります。事前学習は、データをよく表す特徴を抽出し、それをもって重みの初期値を決定することにより、多層のネットワークでも勾配消失問題が起きにくくするものです。らのグループによる畳み込みニューラルネットワークは他をはるかに上回る成績を収め、これにより多層ニューラルネットワークの能力の高さが広く認識されるようになりました。研究が進むにつれてこの難問は次第に解決されつつあります。多層ニューラルネットワークもなぜ多層にすると精度が良くなるのかについては、まだ納得できる説明がなされていないようです。今後もブームに流されない地道な研究が必要であると思われます。Network)は多層ニューラルネットワークの中でもシンプルで基本的なものです。本稿ではこの順伝播型ニューラルネットワークについて解説します。Network)はこの順伝播型ニューラルネットワークに畳み込み層、プーリング層、正規化層といった層を追加したものです。Network)は系列データを処理する際、中間層の出力を次のデータの処理時に再度同じ中間層に入力させる経路を追加したもので、これにより前のデータによる影響を加味できるようにしたものです。順伝播型ニューラルネットワークはこういった多層ニューラルネットワークの基本になるものです。順伝播型ニューラルネットワークを習得することで畳み込みニューラルネットワークや再帰型ニューラルネットワークの実装もやりやすくなると思います。それぞれの層にはユニットが複数存在します。ニューラルネットワークによる学習は、入力層にデータを与えて、出力層から出力された値を目標とする値に近くなるようにネットワークのパラメータを調整することです。最適なパラメータが与えられると、新しいデータを入力層に与えれば、そのデータを最もよく表現する出力値が出力層から出力されることになります。ありますが、問題の種類によって数は変化します。以上の場合は多値分類問題に対応します。層の間をつなぐ線が層間結合です。順伝播型ニューラルネットワークでは、ある層のユニット全てとその前または後の層のユニット全てが結合されます。本稿では取り上げませんが、ドロップアウトというテクニックや、畳み込みニューラルネットワークなど、一部の層間結合がないケースがあります。つの値が入力されます。問題の内容に応じて入力層のユニットは増減します。ように,中間層を複数つなげて多層にしたものです。中間層のユニット数が等しくなっていますが、それぞれの層で異なっていても構いません。多層ニューラルネットワークニューラルネットワークの計算ニューラルネットワークは全体として一つの関数と捉えることができます。入力層に入力された値がネットワーク内で計算され、出力層から値として取り出すイメージです。ような層間のつながりを考えます。