登録は簡単!. 無料です
または 登録 あなたのEメールアドレスで登録
G検定 により Mind Map: G検定

1. 人工知能研究の歴史

1.1. 世界初の汎用コンピュータの誕生

1.1.1. エニアック(ENIAC)の開発

1.1.1.1. 真空管を使った世界初の汎用電子式コンピューター

1.2. ダートマス会議

1.2.1. 参加者

1.2.1.1. マーヴィン・ミンスキー

1.2.1.2. ジョン・マッカーシー

1.2.1.2.1. 主催者

1.2.1.2.2. 人工知能という言葉を初めて使った

1.2.1.3. アレン・ニューウェル ハーバート・サイモン

1.2.1.3.1. ロジック・セオリストをデモンストレーション

1.2.1.4. クロード・シャノン

1.2.1.4.1. 情報理論の父

1.3. 第一次AIブーム

1.3.1. 推論・探索の時代

1.3.2. トイ・プロブレムしか解けなかった

1.4. 第二次AIブーム

1.4.1. 知識の時代

1.4.2. エキスパートシステム

1.4.2.1. 第5世代コンピュータ

1.5. 第三次AIブーム

1.5.1. 機械学習・特徴表現学習の時代

1.5.2. 機械学習

1.5.2.1. ビックデータを用いて自ら学習

1.5.3. ディープラーニング(深層学習)

1.5.3.1. 知識を定義する要素(特徴量)を自ら学習

1.5.4. シンギュラリティ

2. 深層学習

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

2.1.1. 人間の神経回路を真似することで学習を実現

2.1.2. 単純パーセプトロン

2.1.2.1. ニューラルネットワークの元祖

2.1.2.2. 1958年アメリカの心理学者、フランク・ローゼンブラットが提案

2.1.2.3. 直線で分離できる問題しか解けないという問題が指摘され、下火になる

2.1.2.3.1. ニューラルネットワークを多層にして、誤差逆伝播法を用いることで克服

2.1.3. ディープラーニング

2.1.3.1. ニューラルネットワークを多層にしたもの

2.1.3.2. ILSVRC

2.1.3.2.1. 画像認識の精度を競い合う競技

2.1.3.2.2. 2012年、トロント大学のジェフリー・ヒントンが率いる「SuperVision」が圧倒的な勝利

2.1.3.3. 誤差逆伝播法

2.1.3.4. 自己符号化器

2.1.3.5. 活性化関数

3. 探索・推論

3.1. 探索木

3.1.1. 場合分けを行い、目的の条件に合致するものを探す

3.1.2. 幅優先探索

3.1.2.1. 出発点に近いノードから順に探索

3.1.2.2. 最短距離でゴールに辿り着く解を必ず見つける

3.1.2.3. 途中で立ち寄ったノードをすべて記憶するする必要があるため、メモリ不足になりやすい

3.1.3. 深さ優先探索

3.1.3.1. あるノードからとにかく行けるところまで行って、 行き止まりになったら一つ手前のノードに戻って探索を行う

3.1.3.2. メモリはあまり使わない

3.1.3.3. 答えが見つかっても、それが最短距離でゴールに辿り着く解であるとは限らない

3.1.3.4. 運が良ければいち早く解が見つかるが、運が悪ければ時間がかかる

3.1.4. ハノイの塔

3.1.5. プランニング

3.1.5.1. ロボットなどの行動計画

3.1.5.2. STRIPS

3.1.5.2.1. あらゆる状態<前提条件>について、<行動>と<結果>を記述しておくことで、 ロボットの行動計画を建てる

3.1.5.3. SHRDLE

3.1.5.3.1. テリー・ウィノグラードが開発

3.1.5.3.2. 英語による指示を受け付け、コンピュータ画面に描かれる積み木を動かす

3.1.5.3.3. のちにCycプロジェクトに引き継がれる

3.1.6. ボードゲーム

3.1.6.1. 手法

3.1.6.1.1. コスト

3.1.6.1.2. モンテカルロ法

3.1.6.2. ゲーム

3.1.6.2.1. 囲碁

4. 知識表現

4.1. 人工無能

4.1.1. チャットボット、おしゃべりボット

4.1.2. 特定のルール・手順に沿って会話を機械的に処理

4.1.3. イライザ(ELIZA)

4.1.3.1. パターンに合致した言葉があると、そのパターンに応じた発言を返答する

4.1.3.2. イライザ効果

4.1.3.2.1. あたかも本物の人間と対話しているように錯覚すること

4.2. エキスパートシステム

4.2.1. 専門家の知識を取り込みその分野のエキスパートのように振る舞うプログラム

4.2.2. エキスパートシステムの限界

4.2.2.1. 人間の専門家からの知識獲得がとても困難だった

4.2.2.1.1. 専門知識が豊富であるほど暗黙的であるため、 上手にヒアリングする必要があった

4.2.2.1.2. 知識の数が数千、数万になるとお互いに矛盾するなど、知識ベースの保守が困難になった

4.2.2.1.3. 常識的知識が明文化されていない

4.2.3. 意味ネットワーク

4.2.3.1. 概念をラベルの付いたノードで表し、概念感の関係をラベルの付いた矢印で結んだネットワーク

4.2.3.1.1. Gyazo

4.2.3.1.2. 「is-a」の関係

4.2.3.1.3. 「part-of」の関係

4.2.3.2. Cycプロジェクト

4.2.3.2.1. すべての一般常識をコンピュータに取り込もうというプロジェクト

4.2.3.2.2. 「ビル・クリントンはアメリカの大統領の一人です」等

4.2.3.2.3. 30年以上経った今も続いている

4.2.3.3. オントロジー

4.2.3.3.1. 概念体系を記述するための方法論

4.2.3.3.2. 概念の明示的な仕様

4.2.3.3.3. 知識のを記述することの難しさに直面

4.2.4. マイシン(MYCIN)

4.2.4.1. 血液中のバクテリアの診断支援をするルールベースのプラグラム

4.2.4.2. 69%の正答率

4.2.5. DENDRAL

4.2.5.1. 未知の有機化合物を特定

4.2.6. ワトソン

4.2.6.1. アメリカのクイズ番組で、人間のチャンピョンに対戦して勝利

4.2.6.2. IBMが開発

4.2.6.3. Question-Answering(質問応答)という研究分野の成果

4.2.6.4. ウィキペディアの情報をもとにライトウェイト・オントロジーを生成してそれを回答に使用

4.2.6.5. 質問に含まれるキーワードと関連しそうな答えを高速に検索

4.2.7. 東ロボくん

4.2.7.1. 人工知能で東大合格を目指す

4.2.7.2. 偏差値57.8を記録

4.2.7.3. 東大似合格するには、読解力に課題があった

5. 機械学習

5.1. 人工知能のプログラム自身が学習する仕組み

5.2. 与えられたサンプルデータを通してデータに潜むパターンを学習

5.2.1. サンプルデータが多ければ多いほど、望ましい結果が得られる

5.3. 1990年にインターネット上にウェブページが作られ、 その爆発的な増加とともに様々なデータが蓄積されるように

5.3.1. ビッグデータ

5.4. レコメンデーションエンジン、スパムフィルター

5.5. 統計的言語処理

5.5.1. 複数の単語を人まとまりにした単位(句または分単位)で用意された膨大の対訳データをもとに、 最も正解である確率が高い訳を選択する

5.5.2. 例えば、「bank」という言葉の近くにmoneyやinがあれば銀行、ソレ以外は土手という意味だと推測される

5.5.3. コーパス(対訳データ)

6. 人工知能分野の問題

6.1. トイ・プロブレム(おもちゃの問題)

6.1.1. 本質を損なわない程度に問題を簡略化したもの

6.1.2. 問題の本質を理解したり、複数の研究者がアルゴリズムの性能を比較するためなどに用いる

6.2. フレーム問題

6.2.1. いましていることに関係のある事柄だけを選び出すことが、実は非常に難しい

6.2.2. Gyazo

6.3. チューリングテスト

6.3.1. アラン・チューリングが提唱

6.3.2. 別の場所にいる人間がコンピュータと会話し、 相手がコンピュータだと見抜けるかを検証

6.3.3. ローブナーコンテスト

6.3.3.1. チューリングテストを合格する会話ソフトウェアを目指すコンテスト

6.4. 強いAIと弱いAI

6.4.1. ジョン・サールが1980年に発表

6.4.1.1. 中国語の部屋

6.4.1.1.1. コンピュータは記号操作を行っているだけで、心にとって本質的な意味論を欠いていると主張

6.4.2. 強いAI

6.4.2.1. 適切にプログラムされたコンピュータは人間が心を持つのと同じ意味で心を持つ。

6.4.2.2. 本物の心を持つ人工知能はコンピュータで実現できる

6.4.3. 弱いAI

6.4.3.1. コンピュータは人間の心を保つ必要はなく、有用な道具であればいい。

6.4.4. ロジャー・ペンローズ

6.4.4.1. 意識は脳の中にある微細な管に生じる量子効果によるもので、既存のコンピュータでは強いAIは実現できない

6.5. シンボルグラウンディング問題

6.5.1. 1990年に認知科学者のスティーブン・ハルナッドにより提唱

6.5.2. 記号(シンボル)とその対象が以下にして結びつくか

6.6. 身体性

6.6.1. 知能が成立するためには身体が不可欠であるという考え

6.7. 知識獲得のボトルネック

6.7.1. 機械翻訳

6.7.1.1. ルールベース機械翻訳

6.7.1.2. 統計的機械翻訳

6.7.1.3. コンピュータは意味を理解することが出来ない

6.7.1.3.1. 画像

6.7.1.3.2. 膨大な一般常識を扱う必要が出てくる

6.7.2. コンピュータが知識を獲得することの難しさ

6.7.3. ニューラル機械翻訳

6.7.3.1. ディープラーニングでボトルネックを乗り越えた

6.7.3.2. Google翻訳

6.8. 特徴量設計

6.8.1. 注目すべきデータの特徴の選び方

6.8.1.1. 画像

6.8.1.2. 画像

6.8.2. 特徴表現学習

6.8.2.1. 特徴量を機械学習自身に発見させる

6.8.2.1.1. 画像

6.8.2.2. ディープラーニング

6.8.2.2.1. 例)画像の分類

6.9. シンギュラリティ(技術的特異点)

6.9.1. 自分自身より賢い人工知能を作れるようになった瞬間、無限に知能の高い存在を作るようになり、人間の想像力が及ばない超越的な知性が誕生する

6.9.2. レイ・カーツワイ

6.9.2.1. 未来学者で実業家

6.9.2.2. シンギュラリティが2045年に起こると主張

7. 機械学習の具体的手法

7.1. 教師あり学習

7.1.1. 与えられたデータ(入力)を元に、 そのデータがどんなパターン(出力)になるかを識別・予測する

7.1.2. 回帰問題

7.1.2.1. 連続する値を予測

7.1.2.2. 過去の売上から、将来の売上を予測

7.1.2.3. 線形回帰

7.1.2.3.1. そのデータにもっとも当てはまる直線を考える

7.1.2.3.2. 画像

7.1.2.3.3. ラッソ回帰

7.1.2.3.4. リッジ回帰

7.1.3. 分類問題

7.1.3.1. 離散値を予測

7.1.3.2. 与えられた動物の画像が、なんの動物かを識別

7.1.3.3. ロジスティック回帰

7.1.3.3.1. シグモイド関数をモデルの出力に使用

7.1.3.3.2. 任意の値を0から1の間に写像するシグモイド関数を用いることによって、 与えられたデータが正例になるか負例になるかの確率が求まる

7.1.3.3.3. たくさんの種類の分類を行う場合はソフトマックス関数を使用する

7.1.4. ランダムフォレスト

7.1.4.1. 決定木を用いる手法

7.1.4.2. 回帰木と分類木を使い分ける

7.1.4.3. 特徴量をランダムに選び出し、複数の決定木が作られる

7.1.4.4. ブートストラップサンプリング

7.1.4.4.1. 学習に用いるデータをそれぞれの決定木に対してランダムに一部を取り出す

7.1.4.5. アンサンブル学習

7.1.4.5.1. 複数の決定木のそれぞれの結果を用いて多数決をとる

7.1.5. バギング

7.1.5.1. 全体から一部のデータを用いて複数のモデルを用いて学習する方法

7.1.5.2. 複数のモデルを一気に並列に作成する

7.1.5.3. ランダムフォレスト

7.1.6. ブースティング

7.1.6.1. 一部のデータを繰り返し繰り返し抽出し、複数のモデルを学習させる

7.1.6.2. 複数のモデルを逐次的に作成する

7.1.6.3. 画像

7.1.6.4. 勾配ブースティング

7.1.6.5. ブースティングに比べて精度は高いが、学習にかかる時間は多くなる

7.1.7. サポートベクターマシン(SVM)

7.1.7.1. 異なるクラスの各データ点との距離が最大となるような境界線を求めることで、パターン分類を行う

7.1.7.2. マージン最大化

7.1.7.2.1. 距離を最大化すること

7.1.7.3. カーネル関数

7.1.7.3.1. データをあえて高次元に写像することで、 その写像後の空間で線形分類できるようにするアプローチ

7.1.7.3.2. カーネルテクニック

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

7.1.8.1. 人間の脳の中の構造を模したアルゴリズム

7.1.8.2. 単純パーセプトロン

7.1.8.2.1. 画像

7.1.8.2.2. 線形分類しか行うことが出来ない

7.1.8.3. 入力層

7.1.8.4. 出力層

7.1.8.5. 重み

7.1.8.6. 活性化関数

7.1.8.6.1. 層をどのように伝播させるかを調整する関数

7.1.8.6.2. シグモイド関数

7.1.8.7. 多層パーセプトロン

7.1.8.7.1. 隠れ層を追加

7.1.8.7.2. 非線形分類も行うことが可能に

7.1.8.8. 誤差逆電波法

7.1.9. 自己回帰モデル

7.1.9.1. 一般的に回帰問題に適用される

7.1.9.2. 時系列データを対象とする

7.1.9.3. ベクトル自己回帰モデル(VARモデル)

7.1.9.3.1. 複数の過去データ(ベクトル)から現在のデータを予測

7.2. 教師なし学習

7.2.1. 正解の出力データが与えられない

7.2.2. ECサイトの売上データから、どういった顧客層があるのかを認識したい

7.2.3. 入力データの各項目間にある関係性を把握したい

7.2.4. 階層なしクラスタリング(k-means法)

7.2.4.1. 元のデータからグループ構造を見つけ出し、k個のグループに分ける

7.2.4.2. 何個(k)のグループに分けるかは自分で設定する

7.2.4.3. グループの事をクラスタといい、k-means法を用いた分析のことをクラスタ分析という

7.2.4.4. 画像

7.2.5. 階層ありクラスタリング(ウォード法)

7.2.5.1. データを複数のクラスタに分けたあと、更にクラスタの階層構造を求める

7.2.5.2. 最も距離が近い2つのデータを選び、それらを1つのクラスタにまとめていく

7.2.5.3. デンドログラム

7.2.5.3.1. クラスタリングによる各まとまりを樹形図で表したもの

7.2.6. 主成分分析(PCA)

7.2.6.1. データの特徴量間の関係性を分析

7.2.6.2. 相関を持つ多数の特徴量から、相関のない少数の特徴量(主成分)へ次元削減

7.2.7. 特徴量の次元削減

7.2.7.1. 特異値分解(SVD)

7.2.7.2. 元尺度構成法(MDS)

7.2.7.3. t-SNE

7.2.8. 強調フィルタリング

7.2.8.1. レコメンデーションに用いられる

7.2.8.2. ユーザー間の類似度を定義することで、 類似との高いユーザーが購入済みの商品を推薦する

7.2.8.3. コールドスタート問題

7.2.8.3.1. 事前にある程度参考にできるデータがない限り、 推薦を行うことが出来ない

7.2.8.3.2. コンテンツベースフィルタリング

7.2.9. トピックモデル

7.2.9.1. 複数のクラスタにデータを分類する

7.2.9.2. 潜在的ディレクレ配分法(LDA)

7.2.9.3. ニュース記事の分類

7.2.9.3.1. 記事内に出てくる単語からそれぞれどのトピックに分類されるかの確率を求める

7.2.9.3.2. 類似度も求めることができるため、トピックモデルは似た文章を推薦することもできる

7.3. 強化学習

7.3.1. 概要

7.3.1.1. ある環境下で、目的とする報酬(スコア)を最大化するためには どのような行動を取っていけばいいかを学習

7.3.1.2. 状態・行動・報酬のやり取りを1時刻ごとに進めて考える

7.3.1.2.1. Gyazo

7.3.1.3. 将来に渡って獲得できる累積報酬を最大化する

7.3.1.3.1. Gyazo

7.3.1.3.2. 割引率(γ)

7.3.2. 活用と探索

7.3.2.1. 活用

7.3.2.1.1. ある程度の試行のあと、報酬が高かった行動を積極的に選択する

7.3.2.2. 探索

7.3.2.2.1. 他にももっと報酬が高い行動があるのではないかと別の行動を選択する

7.3.2.3. 活用と探索はトレードオフの関係にあり、 どうバランスを取るかが鍵になる

7.3.2.3.1. バンディットアルゴリズム

7.3.3. マルコフ決定過程モデル

7.3.3.1. マルコフ性を仮定したモデル

7.3.3.1.1. 環境に対して暗黙的に置く仮定

7.3.3.1.2. 現在の状態から将来の状態に遷移する確率は、 現在の状態にのみ依存し、それより過去の状態には一切依存しないという性質

7.3.3.2. 本来、環境の状態やエージェントの行動、それに基づく報酬は、過去の一連のやり取りによって決まってくるので、 過去のすべての事象に依存していると考えるのが普通

7.3.3.3. しかし、すべての依存関係をそのまま素直にモデル化しようとすると、計算が複雑になり、扱いきれなくなってしまう

7.3.3.4. 環境に対してマルコフ性を仮定することで現在の状態及び行動が与えられれば、将来の状態に遷移する確率が求まるようなモデル化を可能にしている

7.3.4. 価値関数

7.3.4.1. 最適な方策を直接求める代わりに、状態や行動の「価値」を設定し、 その価値が最大となるように学習をするアプローチ

7.3.4.2. 状態価値関数

7.3.4.3. 行動価値関数

7.3.4.3.1. より大事なのが行動関数で、単純に価値関数といった場合、こちらを指す

7.3.4.4. Q値

7.3.4.4.1. 価値観数の別名

7.3.4.4.2. Q学習

7.3.4.4.3. SARSA

7.3.5. 方策勾配法

7.3.5.1. 方策をあるパラメータで表される関数とし、そのパラメータを学習することで、 直接方策を学習していくアプローチ

7.3.5.2. ロボット制御など、特に行動の選択肢が大量にある課題で用いられる

7.3.5.3. REINFORCE

7.3.5.3.1. Alphagoに活用

7.3.5.4. Actor-Critic

7.3.5.4.1. 価値関数ベースと方策勾配ベースを組み合わせ

7.3.5.4.2. A3C

7.4. モデルの評価

7.4.1. 未知のデータに対しての予測能力を見ることが適切

7.4.1.1. 手元にあるデータから擬似的に未知のデータを作り出す

7.4.1.2. 交差検証

7.4.1.2.1. 手元にある全データを、学習用のデータと、評価用のデータにランダムに分割

7.4.1.2.2. ホールドアウト検証

7.4.1.2.3. k-分割交差検証

7.4.1.2.4. Gyazo

7.4.2. 評価指標

7.4.2.1. 例

7.4.2.1.1. 10000枚の犬、狼の画像を用いて、別の2000枚の画像がどちらなのかを予測する分類問題

7.4.2.1.2. 予測値と実際の値は、2x2=4通りある

7.4.2.1.3. Gyazo

7.4.2.1.4. 正解率