「ディープラーニング G 検定公式テキスト(第2版)」読後まとめ

「ディープラーニング G 検定公式テキスト(第2版)」読後まとめ

May 3, 2023

機械学習の勉強のために次の本を読んだ。振り返りのために内容を補完しつつ整理しておく。


第 1 章:人工知能(AI)とは #

1-1. 人工知能(AI)とは #

  • 専門家の間でも共有されている統一的な「人工知能」の定義は未だに存在しない。そもそも「知性」や「知能」自体の定義がないため「人間と同じ知的な処理能力」の解釈が研究者によって異なっているためである。
    • 「エージェントアプローチ人工知能」(共立出版)では、「周囲の状況(入力)によって行動(出力)を変えるエージェント(プログラム)」として人工知能を捉えている。この視点からレベル別に分類したものが以下。レベル2以降が人工知能に該当する。
      1. レベル1「シンプルな制御プログラム」:すべての振る舞いがあらかじめ決められているもの。エアコンの温度調整、洗濯機の水量調整など。
      2. レベル2「古典的な人工知能」:探索・推論、知識データを利用することで、状況に応じた複雑な振る舞いをするもの。掃除ロボットや診断プログラムなど。
      3. レベル3「機械学習を取り入れた人工知能」:膨大なサンプルデータをもとに入力と出力の関係を学習したもの。検索エンジンや交通渋滞予測システムなど。
      4. レベル4「ディープラーニングを取り入れた人工知能」:特徴量(=学習対象となるデータのうち、学習結果に大きな影響を与える要素)と呼ばれる変数を、自動的に学習するもの。画像認識、音声認識、自動翻訳、チェスや囲碁・将棋のソフトなど。
  • AI 効果:そのシステムの原理が判明すると「それは自動化であって知能ではない」と結論づけようとする人間の心理的な働きを「AI 効果」という。多くの人は、人間特有の知能であると考えていたものが機械で実現できてしまうと、それは知能ではないと思いたくなるようだ。この効果によって、時代と共に人工知能というイメージ自体が変わっているとされる。

1-2. 人工知能研究の歴史 #

  • 1946 年、アメリカのペンシルバニア大学でエニアック(ENIAC)が開発された。世界初の汎用電子式コンピュータ。
  • 1956 年、アメリカのダートマス会議においてジョン・マッカーシーが初めて「人工知能」という用語を使った。
  • 人工知能のブームの変遷
    • 第1次ブーム(推論・探索の時代:1950 年代後半〜1960 年代):推論や探索の研究が進み、特定の問題に対して解を提示できるようになった。しかし、簡単な問題(トイ・プロブレム)は解けても、現実の複雑な問題を解くことはできず、失望と共にブームは去った。
    • 第2次ブーム(知識の時代:1980 年代):コンピュータに知識を入れると賢くなるというアプローチが全盛を迎える。エキスパートシステムが多く開発される。しかし、知識を蓄積・管理する困難さが明らかになるに従ってブームは去った。
    • 第3次ブーム(機械学習・特徴表現学習の時代:2010 年〜):ビックデータと呼ばれる大量のデータを用いることで、人工知能が自ら知識を獲得する機械学習が実用化される。知識の重要な要素である特徴量を自ら学習するディープラーニング(深層学習)が登場する。ディープラーニングを用いた画像認識技術や、AlphaGo がプロ棋士に勝利するなど象徴的な出来事が多く起こっている。

第 2 章:人工知能をめぐる動向 #

2-1. 探索・推論(=第1次ブームの中心的役割) #

  • 探索木(たんさくぎ)
    • 探索木とは、計算機科学において特定のキーを特定するために使用される木構造である。その木構造が探索木として機能するために、あるノードのキーは、そのノードの左の子ノードのキーよりは常に大きく、逆に右の子ノードのキーよりは常に小さい性質が必要である。

      探索木 - Wikipedia

    • 探索木は要するに場合分けであり、場合分けを続けていけばいつか目的の条件に合致するものが出現するという考え方を基礎にしている。基本的な探索手法には、幅優先探索と深さ優先探索がある。
  • プランニング
  • ボードゲームへの応用
    • 代表的なボードゲームの組み合わせ
      • オセロ:約 10 の 60 乗通り
      • チェス:約 10 の 120 乗通り
      • 将棋:約 10 の 220 乗通り
      • 碁:約 10 の 360 乗通り
    • すべてをしらみつぶしに探索することは不可能であり、探索を効率化するために「コスト」という概念が取り入れられた。
      • コンピュータが指して指し手を探索する中で、それぞれの状態が自分によって有利か不利かを示すスコア(コスト)と保持しておく。ゲーム戦略は Mini-Max 法を使って立てる。自分の手番においてスコアが最大となるのものを選択する過程で、すでに出現したスコアよりもスコアが小さいノードが出現したら、その時点でそのノードを探索対象から外してしまう。これにより、探索する必要のないノードを切り落とすことを α カットと呼ぶ。同様に、相手の手番において、自分のスコアが最小となるのものを想定する過程で、すでに出現したスコアよりも大きいノードが現れた時点で、その先につながるノードの探索をやめることを β カットと呼ぶ。このように探索する量を減らしている。
    • ゲームが後半になると探索すべき幅・深さが減少するが、この時点でモンテカルロ法を用いたプレイアウト戦略が実行される。これはコンピュータの計算速度を活かして総当たり的に終局までをシミュレーションするもの。こういった特性もあって、一般的にゲームの後半になればなるほど AI の回答は精度が高くなる。

2-2. 知識表現(=第2次ブームの中心的役割) #

  • 人工無能:チャットボットのようなプログラムのこと。特定のルールに沿って返答しているだけで、実際に会話の内容を理解しているわけではないことからこう呼ばれる。
    • イライザ(ELIZA):世界初の人工知能とされているもの。1964-1966 年頃に開発された。
      • 人工無能を利用したときの、あたかも本物の人間と会話しているような錯覚を「イライザ効果」という。
  • エキスパートシステム:特定の専門分野の知識を取り込み、その分野の専門家(エキスパート)のように振る舞うシステムのこと。
  • 知識獲得のボトルネック:人間が持っている知識をコンピュータに落とし込むのは困難。これらを克服しようと「意味ネットワーク」や「オントロジー」の研究が活性化した。
  • Cyc(サイク)プロジェクト:すべての一般常識をコンピュータに取り込もうと目論むもの。1984 年にダグラス・レナートによって開始され、現在もまだ継続中である。
  • オントロジー:人工知能用語としてのオントロジーは、人間の知識をコンピュータにインプットする際の明示的な共通仕様定義を指す。もともとは哲学用語で、哲学用語としてのオントロジーは、存在論(存在に関する体系的理論)の意。
    • 概念館の関係を示すものとして、「is-a」と「part-of」の関係がある。
      • is-a:上位概念と下位概念を表す。A と B に is-a 関係があり、 B と C に is-a 関係があれば、A と C にも is-a 関係が成り立つ。このように必ず推移律が成立する。(動物>哺乳類>人間)
      • part-of:全体と部分の関係を表す。推移率が成立するとは限らない。(成立する場合:アジア>日本>東京、成立しない場合:野球部>太郎君、太郎君>指)

2-3. 機械学習・深層学習(=第3次ブームの中心的役割) #

  • 機械学習(マシンラーニング):人工知能のプログラム自身が学習する仕組み。与えられたサンプルデータを通してデータに潜むパターンを学習する。サンプルデータの数が多ければ多いほど、学習結果は良好になる。2000 年以降、ビックデータ(インターネット上に蓄積された大容量のデータ)というキーワードと共に耳目を集めるようになった。
  • ニューラルネットワーク:機械学習の1つで、人間の神経回路を真似することで学習を実現するもの。ニューラルネットワークの元祖は、1958 年に提案された「単純パーセプトロン」。
  • 深層学習(ディープラーニング):ニューラルネットワークを多層にしたものをディープラーニングと呼ぶ。(機械学習>ニューラルネットワーク>ディープラーニング、という全体/部分関係)

第 3 章:人工知能分野の問題 #

3-1. 人工知能分野の問題 #

  • トイ・プロブレム(おもちゃの問題):現実の問題から本質を抽出して、コンピュータで扱えるように簡略化した問題。人工知能はトイ・プロブレムは解くことができても、現実の問題は実際にはそれより複雑であり、現実の問題を解くことは難しいという課題がある。
  • フレーム問題:今しようとしていることに関係のあることがらだけを選び出すことが、実は非常に難しいという問題。
  • チューリングテスト:人工知能が完成したかどうかを判定する方法論。別の場所にいる人間がコンピュータと会話し、相手がコンピュータだと見抜けなければそのコンピュータには知能がある、として判定しようとするもの。https://ja.wikipedia.org/wiki/%E3%83%81%E3%83%A5%E3%83%BC%E3%83%AA%E3%83%B3%E3%82%B0%E3%83%BB%E3%83%86%E3%82%B9%E3%83%88
  • 中国語の部屋:https://ja.wikipedia.org/wiki/%E4%B8%AD%E5%9B%BD%E8%AA%9E%E3%81%AE%E9%83%A8%E5%B1%8B
  • シンボルグラウンディング問題(記号接地問題):記号(シンボル)とその対象が以下にして結びつくのかという問題。
  • シンギュラリティ(技術的特異点):人工知能が自分自身よりも賢い人工知能を作成できるようになったとき、加速度的に知能の高い存在が作成されるようになり、人間の想像力が及ばない超越的な知性が誕生するという仮説。なお、特異点とは、数学や物理学でよく使われる用語で、ある基準が適用できなくなる点のこと。例えばブラックホールは一般的な物理法則が適用できなくなる点ということで、重力特異点と呼ばれる。

第 4 章:機械学習の具体的手法 #

4-1. 代表的な手法 #

  • 機械学習の手法は大きく3つに分類される。それぞれ異なる目的で利用される。
    1. 教師あり学習(Supervised learning)
    2. 教師なし学習(Unsupervised learning)
    3. 強化学習(Reinforcement learning)
  • 教師あり学習:入力をもとに出力を予測するモデルを作成するもの。学習には入力と出力がセットになったデータを用いる。教師あり学習は「回帰問題」と「分類問題」に2分される。
    • 回帰問題:連続値を予測する問題。具体例:過去の売り上げから将来の売り上げを予測する。
    • 分類問題:離散値を予測する問題。具体例:与えられた動物の画像から動物を特定する。英語の文章から日本語の文章へと翻訳する(=英語に対応する日本語のパターンを予測する)。
  • 教師なし学習:入力データそのものがもつ構造や特徴を認識するモデルを作成するもの。学習には入力データのみを用いる。具体例:入力データの各項目間の関係性を把握する。EC サイトの売り上げデータから、顧客層を認識する。
  • 強化学習:行動を学習する仕組み。目的とする報酬を最大化するためにはどのような行動をとればよいかを学習するもの。エージェントの「行動」に対して「報酬」(スコア)をフィードバックする形をとる。活用例:自動運転技術。

代表的な手法(教師あり学習) #


代表的な手法(教師なし学習) #

代表的な手法(強化学習) #

4-2. モデルの評価 #

  • 機械学習の目的は、データを学習することによってその特徴を掴み、未知のデータが与えられた時にその出力を予測するモデルを作成すること。モデルを評価する方法は、未知のデータに対しての予測能力を見ることである。しかし、未知のデータは文字通り未知であり、準備はできない。そのため実際には、手元のデータを代用する。具体的には、手元のデータを学習用のデータ「訓練データ」と、評価用のデータ「テストデータ」に分けておき、テストデータを利用してモデルを評価する。このようにデータを分割して評価することを「交差検証」という。
  • 交差検証には2種類ある。1つが、データを訓練データとテストデータに単純に分割する方法「ホールドアウト検証」だが、たまたまテストデータに対する評価が良くなってしまった場合にその検知が難しい。こういったケースを防ぐために、訓練データとテストデータの分割を複数回行い、それぞれで学習・評価を行うアプローチがある。これを「k-分割交差検証」という。
  • または、訓練データをさらに「訓練データ」と「検証データ」に2分割する方法がある。すなわち、「訓練データ」「検証データ」「テストデータ」の3つに分割される。このとき、学習データで学習を行い、その後に検証データで1度評価を行い、その結果を受けてモデルのパラメータ調整を実施ののち、最終的なモデルをテストデータで再評価するという流れをとる。
  • 評価に用いられる代表的な指標は次のとおり。
    1. 正答率(accuracy):全データ中、どれだけ予測が当たったかの割合。
      • (TP + TN) / (TP + TN + FP + FN)
    2. 適合率(precision):予測が正の中で、実際に正であったものの割合。
      • (TP) / (TP + FP)
    3. 再現率(recall):実際に正であるものの中で、正だと予測できた割合。
      • (TP) / (TP + FN)
    4. F 値(F measure):適合率と再現率の調和平均。適合率あるいは再現率のみで判断すると、予測が偏っているときも値が高くなってしまうので、F 値を用いる。
      • (2 _ precision _ recall) / (precision + recall)
  • 過学習(overfitting):訓練データに対する予測性能は高いが、テストデータに対する予測性能が低くなっている状態。つまり、訓練データにのみ最適化されてしまっている状態。
  • 未学習(underfitting):予測性能が低い状態。
  • 正則化(regularization):学習の際に用いる式に項を追加することによってとりうる重みの値の範囲を制限すること。過学習への対策として、重みが過度に訓練データに対してのみ調整されることを防ぐ役割がある。一方で、正則化しすぎると、全体の予測性能が低下する(未学習)ため、バランスが必要となる。
    • L1 正則化:一部のパラメータの値をゼロにする。
    • L2 正則化:パラメータの大きさに応じてゼロに近づける。
  • オッカムの剃刀(Occam’s razor):「ある事柄を説明するために、必要以上に多くを仮定するべきでない」という指針。哲学者オッカムの言葉。あるタスクを機械学習のモデルで解くときに、複雑なモデルであればあるほど良いというのは誤りであるということを示すためによく使われる。
  • 赤池情報量基準(Akaike information criterion, AIC):統計モデルの良さを評価するための指標。モデルの複雑さと予測精度のバランスを考えるときの目安となる。

第 5 章:ディープラーニングの概要 #

5-1. ニューラルネットワークとディープラーニング #

  • ニューラルネットワークのうち多層パーセプトロンは「入力層 -> 隠れ層 -> 出力層」の構造となっている。入力と出力の関係性が隠れ層の中に表現されているわけであるが、数学的にはこれは単なる関数であり、特別な何かというわけではない。
  • ディープラーニング:隠れ層を増やしたニューラルネットワークであり、狭義には、4層以上の隠れ層をもつ多層パーセプトロンのことをいう。層が深いことから「ディープラーニング(深層学習)」と呼ばれる。
  • なお、ディープラーニングと言ったときは、あくまでも機械学習と同じように人工知能の研究分野を意味することが多く、ニューラルネットワークのモデル自体は、「ディープニューラルネットワーク(deep neural network, DNN)」と呼ぶことが大半である。
  • バックプロパゲーション(Backpropagation / 誤差逆伝播法)ニューラルネットワークでは、モデルの予測結果と実際の正解値との誤差をネットワークの出力層から入力層にかけて逆向きにフィードバックさせる形でネットワークの重みを更新していく。
  • 隠れ層を増やせば増やすほど複雑な表現が可能になると考えられていたが、初期のディープラーニングでは、ネットワークが深くなるとバックプロパゲーションがうまく働かず、かえってモデルの精度が下がる結果になってしまった。これは「勾配消失問題」と呼ばれた。

5-2. ディープラーニングのアプローチ #

  • オートエンコーダ(autoencoder / 自己符号化器):この問題を解決したのがジェフリー・ヒントンで、オートエンコーダと呼ばれる手法を用いた。オートエンコーダは可視層と隠れ層の2層からなるネットワークであり、可視層とは入力層と出力層がセットになったようなもの。このオートエンコーダを積み重ねた「積層オートエンコーダ(Stacked autoencoder)」を用いて入力層から近い順に隠れ層を逐次的に学習させていく。これにより隠れ層の重みがそれぞれ調整されるため、全体で見ても重みが調整されたネットワークが作成されるということになる。
  • 事前学習(pre-training):オートエンコーダを用いて順番に学習していく手順のことを事前学習という。
  • ファインチューニング:事前学習を終えたあと、ディープニューラルネットワーク全体で学習を行う。事前学習を行なっており隠れ層の重みはすでに調整されているため、バックプロパゲーションも適切に働くほか、ファインチューニングで主に重みを調整したいのは出力層部分であるがここではバックプロパゲーションの誤差が消滅する心配もない。この最後の仕上げのことをファインチューニングという。
  • ディープニューラルネットワークの発展に大きく貢献した上記手法だが、現在は別の手法が発見されていることから、最新の手法で事前学習を見かけることはまずなくなっている。

5-3. ディープラーニングを実現するには #

  • バーニーおじさんのルール(Uncle Bernie’s rule):ディープラーニングも機械学習の1つであり、データをもとに学習をするというステップを踏むことに変わりない。学習とはすなわち、「モデルが持つパラメータの最適化」であるが、そのためにはどれだけのデータが必要なのか。明確な答えは存在しないが、目安となる経験則が存在する。それが、バーニーおじさんのルールであり、「モデルのパラメータ数の 10 倍のデータ数が必要」というもの。

5-4. 活性化関数 #

  • 活性化関数(activation function):ニューラルネットワーク中の1つのニューロンにおいて、複数ノードの和を入力として、その出力を最終決定する関数。
  • バックプロパゲーションでの勾配消失問題の原因は、活性化関数であるシグモイド関数(の微分の最大値)にあることは分かっていた。そのため、隠れ層の活性化関数にシグモイド関数以外の関数を用いることで、勾配消失問題の解決が試みられた。
  • tahn 関数(hyperbolic tangent function / ハイパボリックタンジェント関数):シグモイド関数が 0 から 1 の範囲を出力するのに対して、tahn 関数は -1 から 1 の範囲を出力する。シグモイド関数の微分の最大値が 0.25 であるのに対して、tahn 関数の微分の最大値は 1 となるため、勾配が消滅しにくくなる。ただし、この関数であっても微分の “最大値” が 1 であるだけで、実際には 1 より小さい数になるケースがほとんどであり、勾配消失問題を完全に防ぐことはできない。ディープニューラルネットワークの隠れ層の活性化関数にシグモイド関数が使われている場合、それらはすべて tahn 関数に置き換えた方が良いといえる。
  • ReLU 関数(Rectified Linear Unit function):y = max(0, x) の関数であり、シグモイド関数や tahn 関数とはまったく異なったもの。x が 0 より大きい限り微分値は常に 1 が得られるため、勾配消失が発生しにくい。この関数を用いることによって、ディープニューラルネットワーク全体をそのまま効果的に学習できる場合が多くなり、既存の活性化関数と比べて劇的に精度の向上に繋がった。この派生系である Leaky ReLU 関数、Parametric ReLU 関数、Randomized ReLU 関数なども考えられているが、必ずしもすべてのケースにおいて ReLU より優れているわけではなく、どれが一番良いとは言えない。

5-5. 学習率の最適化 #

  • モデルの予測値と実際の値の誤差をなくすこと、が機械学習の目的だが、数学的にはこの誤差を「誤差関数」として定義し、これを最小化するという問題、すなわち「関数の最小化問題」と考えることができる。ニューラルネットワーク(を含めた機械学習)においては、それぞれの層の重みで誤差関数を微分した値がゼロになるような重みを求めれば良い、ということになる。この最適解の探索には「勾配降下法」が用いられる。

5-6. さらなるテクニック #

  • 活性化関数を工夫することで勾配消失問題を回避しやすくなったものの、依然として機械学習の最大の敵である過学習への対応を検討する必要がある。とくにディープニューラルネットワークは訓練データに過敏に反応しやすいことから、過学習の可能性が高くなる。
  • ドロップアウト:学習の際に、ランダムにニューロンをドロップアウトさせる手法。もともとのネットワークから、学習の繰り返しごとにニューロンを除外することで、毎回形の異なるネットワークで学習を行う。これにより学習全体ではパラメータの値が調整されることになる。これはアンサンブル学習を行なっているということになる。
  • 訓練データを用いて予測値と実測値の誤差を最小化している以上、どう工夫をしても(ドロップアウトを利用しても)過学習してしまうのは避けられない。実際、訓練データとテストデータに対する誤差関数の値をそれぞれエポックごとに見てみると、ほとんどの場合で、訓練データに対する値はエポックが進むにつれ徐々に小さくなっていく一方で、テストデータに対する値は、ある程度エポックが進むと緩やかに大きくなっていってしまう。これはすなわち、訓練データに最適化されつつも、テストデータには最適化されていない状態になっているため、過学習を表している。
  • 早期終了(early stopping):ある程度のところで早期に学習を打ち切る手法。シンプルこの上ない手法ながら、どんなモデルにも適用でき、効果があるという点で、強力な手法といえる。ただし、最近の研究では、一度テストデータに対する誤差が増えた後、再度誤差が減っていくという「二重降下現象(double descent phenomenon)」も確認されており、どのタイミングで学習を止めればよいのかについては検討しなくてはならない場合もある。

第 6 章:ディープラーニングの手法 #

6-1. 畳み込みニューラルネットワーク #

  • 畳み込みニューラルネットワーク(Convolutional neural network, CNN):画像や動画認識に広く使われるニューラルネットワーク。1998 年にヤン・ルカンによって「LeNet」と呼ばれる有名な CNN のモデルが考えられた。これは、「畳み込み層」と「プーリング層(またはサブサンプリング層)」の2種類の層を複数組み合わせた構造をしている。
  • 畳み込み(convolutional)処理とは、「フィルタ(あるいはカーネルとも)」を用いて「画像から特徴を抽出する操作」のことを指す。フィルタは通常、画像よりもだいぶ小さいサイズのものが用いられる。
  • 畳み込み処理により、「移動不変性の獲得」に貢献する。これによって画像の位置がズレたとしても同じ物体だと認識できるようになる。
  • プーリング処理は、画像サイズを決められたルールに従って小さくするもの。「ダウンサンプリング」あるいは「サブサンプリング」とも呼ばれる。プーリングには、ある小領域ごとの最大値を抽出する「最大値プーリング」や「平均値プーリング」がある。例えば最大値プーリングの場合、画像のなかのある小領域から、最大値を抽出していくことで、新しくダウンサンプリングした画像(特徴マップ)を得る。これによって、畳み込み処理同様に画像のズレに対する頑健性を獲得する。
  • 畳み込み層・プーリング層を繰り返したあと、最後に全結合層で処理する。これまで抽出してきた特徴を、最終的には2次元から1次元に変換しなければならないためである。全結合層は通常のニューラルネットワークと同じ構造で、特徴マップを1列(フラット)に並べる処理をする。ただし、最近の CNN の手法では、この全結合層を用いない処理も多くなってきている。
  • 同じ物体でも、見る角度、拡大縮小、光の当たり方によって見え方が異なる。この課題が示すことは、これらを網羅したデータが必要になるということであり、モデルの学習に用いる多様なデータが必要ということ。この対策として、実際に画像を収集する代わりに取られたのが、手元にある画像から擬似的に別の画像を生成するというアプローチで、これを「データの拡張(data augmentation)」という。これはいわばデータの水増しであり、具体的にはもとの画像に対してランダムにいくつかの処理を施して新たな画像を生成する。(上下左右にずらす、上下左右を反転する、拡大縮小する、回転する、斜めにゆがめる、一部を切り取る、コントラストを変える、など)
  • CNN の発展系
    • AlexNet(アレックスネット):2012 年の ILSVRC で圧倒的な成果をおさめたモデル。
    • VGG
    • GoogLeNet
    • ResNet:Skip connetion と呼ばれる「層を飛び越えた結合」を加える構造が導入されている。通常のニューラルネットワーク同様、層を深くしたときにバックプロパゲーションの問題があったが、Skip connetion により、たとえ層が深くなっても層を飛び越える部分は伝播しやすくなる、様々な形のネットワークのアンサンブル学習になっている利点がある。
  • 超深層なネットワークの開発が進むにつれ、学習に必要な計算量も膨大になった。もはや個人が実験することは不可能になり、企業も膨大な投資が要求される。いまや、実際に何か実験をする際に、巨大なネットワークをイチから学習することはほとんどない。膨大な計算量が必要なのは最適化されたネットワークの重みづけをする過程においてであって、つまりもしすでに学習済みのネットワークがあれば、それを用いればよいだけである。学習済みのモデルは公開されていることが多く、誰でも利用できるようになっている。つまりこのモデルをそのまま利用すれば個人で学習を行う必要はない。また、新たに開発をしたい場合は、もとのモデルに新たに何層か自分で付け足すように学習させることができる。これを「移転学習(Transfer Learning)」という。また、付け足した層だけではなくネットワーク全体を学習する方法を「ファインチューニング」という。

6-2. 深層生成モデル #

  • 機械学習は分類タスク以外に、「生成タスク」にも応用されている。生成タスクを行うモデルを「生成モデル」という。特にディープラーニングを取り入れた生成モデルを「深層生成モデル」という。
  • 画像生成分野における深層生成モデルでは、「変分オートエンコーダ」と「敵対的生成ネットワーク」が良い成果を残している。
  • 変分オートエンコーダ(Variational AutoEncoder, VAE)
  • 敵対的生成ネットワーク(Generative Adversarial Network, GAN):イアン・グッドフェロー(Ian J. Goodfellow)らによって開発された。「ジェネレータ」と「ディスクリミネータ」の2種類のネットワークで構成されている。
    • ジェネレータ:ランダムなベクトルを入力とし、画像を生成して出力する。
    • ディスクリミネータ:画像を入力とし、その画像が本物か、ジェネレータによって生成された偽物かを予測して出力する。
    • ジェネレータはディスクリミネータが間違えるような偽物画像をつくるように学習していき、ディスクリミネータは偽物をきちんと見抜けるように学習していく。これら2種類のネットワークを競い合わせることで、最終的には本物と偽物の見分けがつかないような偽物、すなわち新しい画像を作り出すことを実現する。

6-3. 画像認識分野での応用 #

  • 画像認識タスク:入力画像に対してその画像に写る代表的な「物体クラスの名称を出力するタスク」。
  • 物体検出タスク:「入力画像に写る物体クラスの識別とその物体の位置を特定するタスク」。
  • セグメンテーションタスク:「画像の画素ごとに識別を行うタスク」。
    • セマンティックセグメンテーション:画像全体を対象とする。同一クラスの物体をひとまとめにする。集団の歩行者の一人一人を分離することはできない。
    • インスタンスセグメンテーション:物体検出した領域を対象とする。物体検出した領域に対してセグメンテーションを行うため、一人一人を分離できる。
    • パノプティックセグメンテーション:個々の物体をそれぞれ分離しつつ、道路や建物などはひとまとめにする。個々の物体をそれぞれ分離しつつ、道路や建物などはひとまとめにする。
  • 姿勢推定タスク:「人の顔や足、手などの関節位置を推定するタスク」。

6-4. 音声処理と自然言語処理分野 #

  • 時系列データとは、「ある時刻の状態が、それ以前の時刻の状態の影響を受けている」ものをいう。時系列データを用いた予測を行いたい場合は、データは時間軸に沿って入力されるべきで、ネットワークそのものにも、時間情報を反映できるような仕組みが必要とされる。
  • 時系列データの例として、音声データ、動画データ、そしてテキストデータが考えられる。テキストデータについては、時間と共に文字や単語が入力されると考えた場合、これも時系列データである。
  • RNN(Recurrent neural network / 回帰型ニューラルネットワーク):時系列データではない一般的なデータからパターンを学習する場合、そのデータが持つ特徴は、隠れ層で抽出してきた。つまり、隠れ層は「データに隠れている状態」を反映するものであり、したがって、時間依存性もまたデータに隠れた状態であることから、同様に隠れ層を用いればよさそうである。隠れ層に時間情報を持たせたものが RNN である。
  • RNN に対し、時間軸に沿ったデータを古いものから順番に入力していくことで、過去の隠れ層から(現在の)隠れ層に対してつながり(重み)を学習する。バックプロパゲーションの際も時間軸に沿って誤差を逆伝播する必要があることから、「BPTT(BackPropagation Through-Time)」と呼ばれる。
  • LSTM(Long Short-Term Memory):通常のディープニューラルネットワーク同様に、RNN も勾配消失問題を抱えるほか、時系列データ固有の問題として「入力重み衝突」「出力重み衝突」という問題がある。これは今の時点では関係ないが、将来の時点では関係がある、という入力が与えられた場合に、重みは小さくすべきであり同時に大きくすべきである矛盾を抱えてしまうというもの。この問題を解決するのが LSTM という手法である。LSTM ブロックと呼ばれる機構を用いて、時系列情報をネットワーク内にうまく保持する仕組みとなっている。
  • Bidirectional RNN(BiRNN):通常の RNN は過去から未来への一方向で学習するが、RNN を2つ組み合わせて未来から過去に向かっても学習が可能となる。これを Bidirectional RNN という。

6-5. 深層強化学習 #

  • ディープラーニングと強化学習を組み合わせた手法は、深層強化学習と呼ばれる。
  • DQN(Deep Q-Network):2013 年に DeepMind 社が開発。Atari 社が開発した家庭用ゲーム機 Atari2600 のゲームを人間並かそれ以上のスコアで攻略することができた。
  • その他の深層強化学習モデル
    • ボードゲーム AI:AlphaGo、AlphaGo Zero、Alpha Zero
    • コンピュータゲーム AI:OpenAi Five、AlphaStar