画像処理とか機械学習とか

画像処理や機械学習関連の事について気まぐれで書いていきます。歩行者検出関係が多いと思います。ハリネズミもたまに出現します。

そもそもDeep Learningって何なの?っていう方へ

  • Deep Learning(深層学習)とは

学習を行うニューラルネットワークの層が何層にも重なった多段構造を持つ機構を用いた学習の事でその仲間には以下のように様々なものがある。

f:id:hiro2o2:20160203214254p:plain

 

  • 学習?なにそれ?

簡単に言うとコンピュータに何かを教えることです。

例えば、車載動画から歩行者を自動で見つけたいときは、コンピュータに歩行者の画像をたくさん使って学習させます。

今までの学習では、データや外界のどこに注目し、特徴量(特徴を数値に変換した物)で表すかは研究者に任されていました。そして、研究者によって設計された特徴量を識別器という学習器に突っ込むことで、歩行者とそれ以外の特徴を学習させ、歩行者かそれ以外かを識別させていました。

しかし、Deep Learningでは、深層にすることで内部表現(何を特徴量にするかを学習する事が可能になりました。

つまり、Deep Learningは学習から識別までをこなしてくれるすごい存在なのです。

f:id:hiro2o2:20160203214851p:plain

 

・階層型ニューラルネットワーク数理モデル

いやいや、ネットワークって何なの?

丸がいっぱい並んでて線がいっぱい書いてあってよく分からない・・・

と思う方もいっぱいいるでしょう。

そもそも、Deep Learningとは人間の脳神経系のニューロン数理モデル化したものです。

コンピュータに人間のような学習をさせよう!という考えから生まれました。

f:id:hiro2o2:20160203215646p:plain

人間のニューロンとはこんな感じです。

そして、これを数理モデル化したものがこのようになります。

f:id:hiro2o2:20160203215759p:plain

f:id:hiro2o2:20160203220113p:plain

ニューロンは、多入力1出力の非線形素子のノードとして数理モデル化できます。

出力yは重み付き入力の線形結合を活性化関数aを通した結果が返ってきます。活性化関数は、一定以上の値で1、それ以外で0を返すような関数が単純なネットワークでは使われてきました。

なぜこのような活性化関数というものを定義するかと言うと、ここでも実際のニューロンを参考にしています。

そして、このニューロンを多数結合させたものがDeep Learningになります。

 

 

f:id:hiro2o2:20160203221133p:plain

入力がそのまま入力されているものを入力層

中間の層を中間層(または隠れ層)と言い、

出力の層を出力層と言います。

このようなネットワークを多層ニューラルネットワーク、もしくは多層パーセプトロンと呼んだりします。

つまり全部Deep Learningの仲間です。