スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Pythonで機械学習の進捗 §3-1

3章からいよいよ機械学習の基礎を成すニューラルネットワークの紹介になります。
ニューラルネットワークとは何でしょうか。
簡単に言えば、2章で学んだパーセプトロンを組み合わせたものです。
3.1ではこのことが丁寧に紹介されています。

私は始めて図3-1を見たとき、「なぜ中間層があるのだろうか。入力から直接出力へ向かう構造の方が単純で良いではないか」と考えました。
ニューラルネットワークがパーセプトロンの組み合わせだと考えれば、図3-1を見て納得することができます。
中間層がある理由、それは2.4節で見たXORゲートのように単純ではないパーセプトロンを組み込むからです。
図2-13を見れば分かります。この図が「パーセプトロンの組み合わせ」つまり、「ニューラルネットワーク」だと考えれば、第0層が入力層、第1層が中間層、第2層が出力層に対応しています。

次の節3.2では活性化関数が登場します。
活性化関数として、ステップ関数とシグモイド関数の2つが紹介されています。
活性化関数はこの2つ以外にもいくつかありますが、機械学習を行う上ではこの2つを知り、区別して使えば実装できるということです。

では、活性化関数とは何をしているのか。それは必要ない情報を捨てていることです。
ステップ関数は0を境にいるいらないを区別しており、シグモイド関数は0に近い情報はいらず1に近い情報が重要であると区別しているのです。
そもそも、私たち人間がものを見て判断する際に、目に見える情報をすべてを認識していません。
例えば、目の前にリンゴが置いてあります。「目の前にある果物はなんですか?」と問われたら、目で見てリンゴだと認識し「リンゴです」と答えます。この時にリンゴが皿の上に置いてあることや背景に見える物は認識していないことが言えます。
つまり、「必要な情報だけを取り出す」ということは「必要ない情報を捨てる」ということです。
なので、活性化関数が行っていることは、人間が無意識に行える「必要ない情報を無視する」処理なのです。

この調整を行えばより精度の高い学習結果が得られると期待できます。そして、この調整の部分はすでに他の人が作った良いものを流用して機械学習させる「Fine tuning」という手法もあります。
私の余裕があれば「Fine tuning」の紹介もしたいですね。
スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

yamoto.tvp

Author:yamoto.tvp
FC2ブログへようこそ!
大学の数学科に通うほど、数学が好きな私です。
趣味で勉強している”機械学習”などの進捗を載せています。

最新記事
最新コメント
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。