機械学習の開発に携わってみて

  1. はじめに
     DeepLearningの成功により、色々な機器にAIの導入が現実的に始まってきている。
     そこで、昨今注目されている機械学習(AI)の実装レベルの入門的索引となる様な情報をまとめる。
  2. 機械学習とは
     機械学習の目的は、十分に理解されているデータに理論分布を当てはめる統計モデルと同様にデータの構造を理解することですが、両者には大きな違いがあります。
     統計モデルの場合は、数理的に実証済みの理論がモデルの背後に存在していることから、データが特定の強固な前提条件を満たしていることが必須となります。
     一方、機械学習では、「たとえデータの構造に関する理論が明らかではない場合でも、コンピューターを使ってデータを精査すれば、その構造を探ることができる」という概念にもとづいてモデルを構築します。
     機械学習モデルにおけるテスト(検定)とは、新たなデータに関する検証エラーを見つけることであり、機械学習では反復アプローチを用いてデータから学習する場合が多いため、学習プロセスの自動化が容易です。
     確固としたパターンが見つかるまで、何度でもデータ処理を繰り返すことができます。
  3. 昨今機械学習が注目されるに至った背景
     機械学習のアルゴリズムは長年にわたり数多く存在してきましたが、ビッグデータに対して複雑な数値計算を自動的に、超高速で、何度も繰り返して適用できるようになったのは、近年のテクノロジーの発展のおかげです。
     ・多数のレイヤー(層)が深く重なったニューラル・ネットワークを構築するのに十分な超大量のデータを利用できるようになっています。モノのインターネット(IoT)のストリーミング・データ、ソーシャルメディアのテキストデータ、医師の臨床メモ、保険調査員の記録などは、そうしたデータのごく一部です。
     ・分散クラウド・コンピューティングおよびGPU(Graphics Processing Unit)という2つの領域における発展のおかげで、信じられないほど高度なコンピューティング・パワーを自在に操れるようになっています。ディープ・ラーニングのアルゴリズムの学習には、これらを最大限活用したコンピューティング・パワーが必要です。
  4. 機械学習の手法
     【ニューラル・ネットワーク】
     【決定木】
     【ランダムフォレスト】
     【アソシエーションとシーケンスの発見】
     【勾配ブースティングとバギング】
     【サポート・ベクター・マシン(SVM)】
     【近傍法マッピング】
     【k平均法クラスタリング】
     【自己組織化マップ(SOM)】
     【局所探索最適化手法(遺伝的アルゴリズムなど)】
     【期待値最大化法】
     【多変量適応型回帰スプライン法】
     【ベイジアン・ネットワーク】
     【カーネル密度推定】
     【主成分分析】
     【特異値分解】
     【ガウス混合モデル】
     【逐次的カバーリング・ルールの構築】
  5. ニューラル・ネットワーク(DeepLearning)
     ニューラルネットワークは、入力層、出力層、隠れ層から構成され、層と層の間には、ニューロン同士のつながりの強さを示す重み「W」がある。
     「人間の脳の中にあるニューロンは電気信号として情報伝達を行います。その際にシナプスの結合強度(つながりの強さ)によって、情報の伝わりやすさが変わってきます。この結合強度を、人工ニューロンでは重みWで表現します」
     データが入力層のXに入ってくると、その値に重みW1をかけ、Yに結果を出力する。
     そして今度は、先ほど計算したYの値を入力として重みW2をかけ出力層のZに書き出す。
     重みW1およびW2の値によって出力結果は異なってくる。
     「たとえば、z1が0.8という出力になったとします。しかし本当はz1の出力を0.5にしたい場合、一体どうすればよいでしょうか?その結果に近づけるために、重みのW1とW2を調整していけばよいのです」
     「ディープラーニングの学習では、ニューラルネットワークの入力層にデータを入力し重みをかけて出力するという操作を最終層までN回繰り返します。これをフォワード・プロパゲーションと呼びます」(村上氏)
     初期段階では、すぐに期待した通りの答えは出力されないため、正解ラベルと出力値の誤差をとり、誤差を各層に伝播させて正解値に近付くように各層の重みを調整する。この誤差を逆伝播させる事を
     「Back Propagation(バックプロパゲーション)」と呼ぶ。これが誤差逆伝播法の仕組みだ。
  6. 畳み込みニューラルネットワーク(Convolutional Neural Network,以下 CNN)
     (1)CNNの定義
      ・入力層
        特徴(次元数)分の入力データ
      ・隠れ層
       >埋め込み層
       >畳み込み層
         Relu(最新のモデルでも標準的な活性化関数として広く利用されている)など
       >プーリング層
         MaxPoolingなど
       >全結合層
      ・出力層
        1ユニットで回帰、多値分類:Softmax関数
     (2) 目的関数の定義
      ニューラルネットワークの学習は、学習時に出力層から出力される確率値と教師ラベルに属する確率値を大きくするように重みを学習する。その指標となるのが目的関数である。
     (3) データの学習((誤差逆伝播(バックプロバゲーション)))
      目的関数の微分による勾配を利用したアルゴリズムに従って目的関数の値を最小化する。
      >2乗誤差
      >クロスエントロピー
      >エントロピー
参考文献