(株)ディジタルメディアプロフェッショナル

技術ブログ

技術ブログ / 新着記事

  • 2016年10月27日
    Deep Learningの入門 (第一回)

    先日Design Solution Forum(DSForum)というイベントで「エンジニアのためのいまさら聞けないディープラーニング入門」という講演を行いました。
    最近話題のAI技術の中で、核となる技術がディープラーニングといわれる機械学習手法(データをいっぱい入力して、統計的に学習する手法)になります。
    資料自体はエンジニアのため、という括りなので、数式を多少織り交ぜた内容となっていますが、ディープラーニングを数式無しで、エッセンス的な部分に絞って紹介したいと思います。

    ■ ディープラーニングの要素技術
    ディープラーニングを分かったつもりになるために、以下の3点を押さえておきます。

      1. 機械学習 : 大量のデータによって賢くなるアルゴリズム
        • データを使って特徴量と呼ばれる、知識・ルールを自動取得する手法
        • 統計学習とも言われる

     

      1. ニューラルネットワーク

     

        • 脳の神経細胞(ニューロン)は、複数の脳神経からの電気信号入力を受けて、ある入力量(閾値)を超えると、発火して、次のニューロンに電気信号を伝搬する
        • 同じような原理をコンピュータ上で実現するために、ニューラルネットワークというモデルを定義する
        • このモデルは各入力に対して重み付けした値の和を求めて、閾値に相当する変換関数を通して、その結果を次のニューロンに伝搬する(脳の中でやっていることと同じ)
        • 結果、汎用的な分類処理(画像を入力した場合、入力画像がネコなのか犬なのかなどの分類)を行う

     

    1. 深いニューラルネットワーク
      • このニューラルネットワークを深くして、より複雑な分類をできるようにした

    これらを総じてディープラーニングといいます。

    ここで、一番重要な要素である、ニューラルネットワークの学習、分類の様子が分かりやすいデモが以下にあります。
    http://playground.tensorflow.org
    Webサイトの真ん中らにあるのがニューラルネットワーク(4個のニューロン + 2個のニューロンのネットワーク)、右のOutputで表示されている点群が分類すべき点群(例えば、オレンジ色の点群が犬の画像・青い色の点群がネコの画像)となります。

    試しに、左上の再生ボタンを押すと、学習が自動的に始まり、Outputの方に、分類結果が現れます。 学習の結果、各ニューロンは特徴量(傾き)を表現し、それらが組み合わさることで、合成関数=フィルタとして機能することで分類処理が行われることが分かります(分かったつもりでもOK)。

    で、ディープラーニング3つの要素技術を書き直してみると

    • 分類処理をするためにニューラルネットワークという合成関数=フィルタを使う
    • ニューラルネットワークは機械学習によって大量のデータを入力することで自動的に学習させる。学習では誤差逆伝搬法(分かったつもり用語)を用いる=> よく分からなければ、そういった手法でデータさえあれば大体学習できると理解!
    • 深いニューラルネットワークを使えば、より複雑な分類も出来る!(気がする)

    ちなみに、深いニューラルネットワークでも学習出来るようになってきたのは、アルゴリズムの改良に加えてGPUの性能が上がったおかげで、DMPもこの分野に今後貢献予定なので、こうご期待

    第二回では、どうやったらより脳に近いニューラルネットワークを組めるかに迫ります!

    (次回は1ヶ月以内に更新予定)

PAGE TOP