2016年2月17日ChainerPythonなどで使える、DeepLearningの為のパッケージです。今回はPython2.7環境で使いました。Chainerについての解説は公式のドキュメントか他にも解説してくださってるかたがいるので省こうと思います。今回作りたいものChainerを使ったAutoencoderです。Autoencoderとは入力信号$x$を受け取った時にそれと同じ入力を返すネットワーク(関数)のことです。今回は簡単のために入力は実数だとして$xinmathbb{R}^n$と考えます。https://en.wikipedia.org/wiki/Autoencoder(絵がわかりやすいと思ったので英語版を乗せます)当たり前ですが、$f(x)=x$にしたら達成出来るじゃんということになるので、関数$f$に制約を付けます。具体的には中間層$h=f_1(x)$を作る関数$f_1$とそこから出力$t=f_2(h)$を作る$f_2$によって出力が決定するします。それを踏まえれば全体では$$t=f_2(h)=f_2(f_1(x))$$となります。何が嬉しいか関数$f_1,f_2$が入力$x$を受け取って、それに重み$W_1,W_2$、バイアス$b_1,b_2$を付ける線形写像だとすると、中間層$h$を作るとします。この時バイアスを$b$とすれば中間層は$$begin{eqnarray}h&=&f_1(x)=W_1x+b_1\t&=&f_2(h)=W_2h+b_2end{eqnarray}$$と表せます。$$になって、これは主成分分析PCAと同じ結果となり、実際にはAutoendoderではこれに活性化関数が加わった定式化をしていますから全く一致するわけではありませんが、Dataが大きく動く方向を学習して、Dataの特徴を捉えることがAutoencoderで...この記事の続きを読むAINOWAI専門メディア「AINOW」(エーアイナウ)です。AI・人工知能を知り・学び・役立てることができる国内最大級のAI専門メディアです。2016年7月に創設されました。取材のご依頼もどうぞ。http://qiita.com/nykergoto/items/bb49e1ab8770f6bfb7d1キュレーションこの記事が気に入ったらいいねしよう!最新記事をお届けします。週1回、注目のAIニュースやイベント情報を編集部がピックアップしてお届けしています。こちらの規約にご同意のうえチェックしてください。【後編】リクルートのビジネスのみならず社会に貢献する研究とはRECOMMENDこちらの記事も人気です。