Topics
    ソリューション
    Menu

    ディープラーニングとは

    ディープラーニングとは・・・

    機械学習と呼ばれる手法の一つ。一昔前、機械学習はエキスパートシステムと呼ばれていました。エキスパートシステムは、特定の分野が対象で「人間がロジックを組む」のに対して、機械学習は「データからロジックを組む」という違いがあり、幅広い分野に適用が可能です。

     

     

    機械学習では従来の手続き型処理とは違い、プログラムの代わりに学習モデルを用います。

     

    機械学習は、訓練データを学習器にいれて学習モデルを作成、そのモデルを利用して処理を行う仕組みを指します。従って、学習器・学習モデルは、設計如何によって、処理性能が大きく左右されます。

    機械学習に携わる研究者たちは、学習器に適用する様々なアルゴリズムを考案してきました。ディープラーニングもそのような試みから発見された手法の一つで、様々な分野で高い処理性能を示す事がわかってきました。その結果、ディープラーニングは急速に注目を集めるようになってきました。

     

    ディープラーニングの計算方法

    ディープラーニングは、階層の深いニューラルネットワークを用いたアルゴリズムです。ニューラルネットワークとは、生物の脳神経ネットワークをモデルとしたコンピュータ処理の仕組みを指します。ニューラルネットワークでは、脳神経ネットワークのニューロンに相当する部分を「ノード」、樹状突起・軸索に相当する部分を「エッジ」、シナプスに相当する部分を「活性化関数」と称します。代表的な階層として入力層、隠れ層、出力層があり、隠れ層は数百・数千段におよぶことがあります。

     

    ディープラーニングの計算は、生物の脳神経ネットワークによる処理と同様に、ニューロン(ノード)の持つ値と樹状突起・軸索(エッジ)の値(重み付の値)、シナプス(活性化関数)の値により次のノードの値を求めます。

    階層の深いニューラルネットワークを高精度に学習するには、エッジの重みを最適化する事が重要になります。エッジの最適化として確率的勾配法、ミニバッチ法、バッチ法が用いられます。また勾配を効率よく計算する方法として誤差逆伝播法も用いられる事もよくあります。

     

    ディープラーニング処理例

    dl_diag2

    dl_diag3

     

    ディープラーニングの真髄は行列計算

    ディープラーニング計算の真髄は行列計算です。全結合層の計算では「行列・ベクトル積」、ミニバッチと呼ばれる複数データで同時学習する計算モデルでは「行列・行列積」の計算を行います。ディープラーニングの演算は、このように大規模な行列計算を行うため、きわめて効率のよいGPU演算が求められています。

    dl_diag4

     

    ディープラーニング用アプリケーションの開発と実行

    • POWER9プロセッサ + NVIDIA GPU用ディープラーニングフレームワークが公開

    • ユーザはGPU操作のためのプログラム操作は不要

    dl_diag5