ディープラーニングの知識整理のために、ディープラーニングG検定を受講する。 その際にしたことを書いていく。
試験概要(2022/10時点)
- 内容: ディープラーニングの基礎知識を有し、適切な活用方針を決定して、事業活用する能力や知識を有しているかを検定する。
- 受験資格制限: なし
-
試験形式:
- 知識問題(多肢選択式)
- 自宅からのオンライン実施
-
出題問題
- 試験時期: 2,3回/年
- 試験の申込方法: JDLA公式サイト参照
- 料金:一般:13,200円(税込) 学生:5,500円(税込)
シラバス(2022/10時点)
人工知能とは
- 人工知能の定義 人工知能や機械学習の定義を理解する 人工知能とは何か、人工知能のおおまかな分類、AI 効果、人工知能とロボットの違い
- 人工知能研究の歴史 ブームと冬の時代を繰り返してきた人工知能研究の歴史を学ぶ世界初の汎用コンピュータ、ダートマス会議、人工知能研究のブームと冬の時代
人工知能をめぐる動向
- 探索・推論 第1次ブームで中心的な役割を果たした推論・探索の研究について学ぶ 探索木、ハノイの塔、ロボットの行動計画、ボードゲーム、モンテカルロ法
- 知識表現 第2次ブームで中心的な役割を果たした知識表現の研究とエキスパートシステムを学ぶ 人工無脳、知識ベースの構築とエキスパートシステム、知識獲得のボトルネック(エキスパートシステムの限界)、意味ネットワーク、オントロジー、概念間の関係 (is-a と part-of の関係)、オントロジーの構築、ワトソン、東ロボくん
- 機械学習・深層学習 機械学習、ニューラルネットワーク、ディープラーニングの研究と歴史、それぞれの関係について学ぶ データの増加と機械学習、機械学習と統計的自然言語処理、ニューラルネットワーク、ディープラーニング
人工知能分野の問題
- 人工知能分野の問題 人工知能の研究で議論されている問題や、人工知能の実現可能性を考察するトイ・プロブレム、フレーム問題、チューリングテスト、強い AI と弱いAI、シンボルグラウンディング問題、身体性、知識獲得のボトルネック、特徴量設計、シンギュラリティ
機械学習の具体的手法
- 教師あり学習 教師あり学習に用いられる学習モデルを理解する線形回帰、ロジスティック回帰、ランダムフォレスト、ブースティング、サポートベクターマシン (SVM)、ニューラルネットワーク、自己回帰モデ ル (AR)
- 教師なし学習 教師なし学習の基本的な理論を理解する k-means 法、ウォード法、主成分分析 (PCA)、協調フィルタリング、トピックモデル
- 強化学習 強化学習の基本的な理論を理解する バンディットアルゴリズム、マルコフ決定過程モデル、価値関数、方策勾配
- モデルの評価 学習されたモデルの精度の評価方法と評価指標を理解する 正解率・適合率・再現率・F 値、ROC 曲線と AUC、モデルの解釈、モデルの選択と情報量
ディープラーニングの概要
- ニューラルネットワークとディープラーニング ディープラーニングを理解する上で押さえておくべき事柄を理解する 単純パーセプトロン、多層パーセプトロン、ディープラーニングとは、勾配消失問題、信用割当問題
- ディープラーニングのアプローチ ディープラーニングがどういった手法によって実現されたのかを理解する事前学習、オートエンコーダ、積層オートエンコーダ、ファインチューニング、深層信念ネットワーク
- ディープラーニングを実現するには ディープラーニングを実現するために必要ものは何か、何故ディープラニングが実現できたかを理解する CPU と GPU、GPGPU、ディープラーニングのデータ量
- 活性化関数 ニューラルネットワークにおいて重要な役割をになう活性化関数を理解する tanh 関数、ReLU 関数、シグモイド関数、ソフトマックス関数 Leaky ReLU 関数
- 学習の最適化 ディープラーニングの学習に用いられるアルゴリズムである勾配降下法を理解する。 そして勾配降下法にはどのような課題があり、どうやって解決するかを理解する 勾配降下法、勾配降下法の問題と改善
- 更なるテクニック ディープラーニングの精度をさらに高めるべく考えられた数々のテクニックを理解する ドロップアウト、早期終了、データの正規化・重みの初期化、バッチ正規化
ディープラーニングの手法
- 畳み込みニューラルネットワーク(CNN) CNN の構造を理解し、各層の役割と層間のデータの流れについて理解する CNN の基本形、畳み込み層、プーリング層、全結合層、データ拡張、CNN の発展形、転移学習とファインチューニング
- 深層生成モデル 生成モデルにディープラーニングを取り入れた深層生成モデルについて理解する 生成モデルの考え方、変分オートエンコーダ (VAE)、敵対的生成ネットワーク (GAN)
- 画像認識分野 ディープラーニングの画像認識への応用 事例や代表的なネットワーク構成を理解する。 物体識別タスク、物体検出タスク、セグメンテーションタスク、姿勢推定タスク、マルチタスク学習
- 音声処理と自然言語処理分野 音声と言語の時系列データをモデルで取り扱うためのニューラルネットワークモデルと最新の研究成果などを理解する データの扱い方、リカレントニューラルネットワーク (RNN)、Transformer、自然言語処理における Pre-trained Models
- 深層強化学習分野 強化学習にディープラーニングを組み込んだ深層強化学習の基本的な手法とその応用分野について理解する 深層強化学習の基本的な手法と発展、深層強化学習とゲーム AI、実システム制御への応用
- モデルの解釈性とその対応 ディープラニングのモデルの解釈性の手法について理解する ディープラーニングのモデルの解釈性問題、Grad-CAM
- モデルの軽量化 計算リソースが十分ではないエッジデバイス等で学習モデルを活用する方法を理解する エッジ AI、モデル圧縮の手法
ディープラーニングの社会実装に向けて
- AIと社会 AI を利活用するための、考えるべき論点や基本となる概念を国内外の議論や事例を参照に理解する AI のビジネス活用と法・倫理
- AIプロジェクトの進め方 AI プロジェクトをどのように進めるか、全体像と各フェーズで注意すべき点などを理解する。 AI プロジェクト進行の全体像、AI プロジェクトの進め方、AI を運営すべきかの検討、AI を運用した場合のプロセスの再設計、AI システムの提供方法、開発計画の策定、プロジェクト体制の構築
- データの収集 AI の学習対象となるデータを取得・利用するときに注意すべきことや、データを共有しながら共同開発を進める場合の留意点を理解する データの収集方法および利用条件の確認、法令に基づくデータ利用条件、学習可能なデータの収集、データセットの偏りによる注意、外部の役割と責任を明確にした連携
- データの加工・分析・学習 集めたデータを加工・分析・学習させるときの注意点を理解する データの加工、プライバシーの配慮、開発・学習環境の準備、アルゴリズムの設計・調整、アセスメントによる次フェーズ以降の実施の可否検討
- 実装・運用・評価 実際にサービスやプロダクトとしてAIシステムを世に出す局面で注意すべきことを理解する 本番環境での実装・運用、成果物を知的財産として守る、利用者・データ保持者の保護、悪用へのセキュリティ対策、予期しない振る舞いへの対処、インセンティブの設計と多様な人の巻き込み
- クライシス・マネジメント AI プロジェクトにおいてコーポレートガバナンスや内部統制、予期せぬことが起きた場合の対応などクライシス・マネジメント(危機管理)に備えることの重要性を理解する。 体制の整備、有事への対応、社会と対話・対応のアピール、指針の作成と議論の継続、プロジェクトの計画への反映
数理・統計
- 数理・統計 機械学習を行う上で最適化は重要である。最適化に必要な必要な数学基礎知識や微分を理解する。また機械学習で必要となる統計学基礎も理解する。 統計検定3級程度の基礎的な知識
キーワード(シラバス内)
- 推論
- 認識
- 判断
- エージェント
- 古典的な人工知能
- 機械学習
- ディープラーニング
- エニアック (ENIAC)
- ロジック・セオリスト
- トイ・プロブレム
- エキスパートシステム
- 第五世代コンピュータ
- ビッグデータ
- 機械学習
- 特徴量
- ディープラーニング
- 推論・探索の時代
- 知識の時代
- 機械学習と特徴表現学習の時代
- ディープブルー探索木
- 幅優先探索
- 深さ優先探索
- プランニング
- STRIPS
- SHRDLU
- アルファ碁 (AlphaGo)
- ヒューリスティックな知識
- MiniMax 法
- αβ 法
- ブルートフォース
- イライザ (ELIZA)
- イライザ効果
- マイシン (MYCIN)
- DENDRAL
- インタビューシステム
- is-a の関係
- has-a の関係
- part-of の関係
- Cycプロジェクト
- 推移律
- ウェブマイニング
- データマイニング
- ワトソン
- Question-Answering
- セマンティック Web
- ビッグデータ
- レコメンデーションエンジン
- スパムフィルター
- 統計的自然言語処理
- コーパス
- 人間の神経回路
- 単純パーセプトロン
- 誤差逆伝播法
- オートエンコーダ
- ILSVRC
- 特徴量
- 次元の呪い
- 機械学習の定義
- パターン認識
- 画像認識
- 特徴抽出
- 一般物体認識
- OCR
- ローブナーコンテスト
- 中国語の部屋
- 機械翻訳
- ルールベース機械翻訳
- 統計学的機械翻訳
- 特徴表現学習
- 分類問題
- 回帰問題
- 半教師あり学習
- ラッソ回帰
- リッジ回帰
- 決定木
- アンサンブル学習
- バギング
- 勾配ブースティング
- ブートストラップサンプリング
- マージン最大化
- カーネル
- カーネルトリック
- 単純パーセプトロン
- 多層パーセプトロン
- 活性化関数
- シグモイド関数
- ソフトマックス関数
- 誤差逆伝播法
- ベクトル自己回帰モデル (VARモデル)
- 隠れ層
- 疑似相関
- 重回帰分析
- AdaBoost
- 多クラス分類
- プルーニング
- クラスタリング
- クラスタ分析
- レコメンデーション
- デンドログラム(樹形図)
- 特異値分解 (SVD)
- 多次元尺度構成法
- t-SNE
- コールドスタート問題
- コンテンツベースフィルタリング
- 潜在的ディリクレ配分法(LDA)
- 次元削減
- 次元圧縮
- 割引率
- ε-greedy 方策
- UCB 方策
- マルコフ性
- 状態価値関数
- 行動価値関数
- Q値
- Q学習
- REINFORCE
- 方策勾配法
- Actor-Critic
- A3C
- 交差検証
- ホールドアウト検証
- k- 分割交差検証
- 混同行列
- 過学習
- 未学習
- 正則化
- L0 正則化
- L1 正則化
- L2 正則化
- ラッソ回帰
- リッジ回帰
- LIME
- SHAP
- オッカムの剃刀
- 赤池情報量基準 (AIC)
- 汎化性能
- 平均二乗誤差
- 偽陽性-偽陰性
- 第一種の過誤-第二種の過誤
- 訓練誤差
- 汎化誤差
- 学習率
- 誤差関数
- 誤差逆伝播法
- 制限付きボルツマンマシン
- TPU
- 誤差関数
- 交差エントロピー
- イテレーション
- エポック
- 局所最適解
- 大域最適解
- 鞍点
- プラトー
- モーメンタム
- AdaGrad
- AdaDelta
- RMSprop
- Adam
- AdaBound
- AMSBound
- ハイパーパラメータ
- ランダムサーチ
- グリッドサーチ
- 確率的勾配降下法
- 最急降下法
- バッチ学習
- ミニバッチ学習
- オンライン学習
- データリーケージ
- 過学習
- アンサンブル学習
- ノーフリーランチの定理
- 二重降下現象
- 正規化
- 標準化
- 白色化
- ネオコグニトロン
- LeNet
- サブサンプリング層
- 畳み込み
- フィルタ
- 最大値プーリング
- 平均値プーリング
- グローバルアベレージプーリング(GAP)
- Cutout
- Random Erasing
- Mixup
- CutMix
- MobileNet
- Depthwise Separable Convolution
- NAS (Neural Architecture Search)
- EfficientNet
- NASNet
- MnasNet
- 転移学習
- 局所結合構造
- ストライド
- カーネル幅,プーリング,スキップ結合
- 各種データ拡張
- パディング
- ジェネレータ
- ディスクリミネータ
- DCGAN
- Pix2Pix
- CycleGAN
- ILSVRC
- AlexNet
- Inception モジュール
- GoogLeNet
- VGG
- スキップ結合
- ResNet
- Wide ResNet
- DenseNet
- SENet
- R-CNN
- FPN
- YOLO
- 矩形領域
- SSD
- Fast R-CNN
- Faster R-CNN
- セマンティックセグメンテーション
- インスタンスセグメンテーション
- パノプティックセグメンテーション
- FCN (Fully Convolutional Netwok)
- SegNet
- U-Net
- PSPNet
- Dilation convolution
- Atrous convolution
- DeepLab
- Open Pose
- Parts Affinity Fields
- Mask R-CNN
- LSTM
- CEC
- GRU
- 双方向 RNN (Bidirectional RNN)
- RNN
- Encoder-Decoder
- BPTT
- Attention
- A-D 変換
- パルス符号変調器(PCM)
- 高速フーリエ変換 (FFT)
- スペクトル包絡
- メル周波数ケプストラム係数 (MFCC)
- フォルマント
- フォルマント周波数
- 音韻
- 音素
- 音声認識エンジン
- 隠れマルコフモデル
- WaveNet
- メル尺度
- N-gram
- BoW (Bag-of-Words)
- ワンホットベクトル
- TF-IDF
- 単語埋め込み
- 局所表現
- 分散表現
- word2vec
- スキップグラム
- CBOW
- fastText
- ELMo
- 言語モデル
- CTC
- Seq2Seq
- Source-Target Attention
- Encoder-Decoder Attention
- Self-Attention
- 位置エンコーディング
- GPT
- GPT-2
- GPT-3
- BERT
- GLUE
- Vision Transformer
- 構文解析
- 形態要素解析
- DQN
- ダブル DQN
- デュエリングネットワーク
- ノイジーネットワーク
- Rainbow
- モンテカルロ木探索
- アルファ碁 (AlphaGo)
- アルファ碁ゼロ (AlphaGo Zero)
- アルファゼロ (Alpha Zero)
- マルチエージェント強化学習
- OpenAI Five
- アルファスター (AlphaStar)
- 状態表現学習
- 連続値制御
- 報酬成形
- オフライン強化学習
- sim2real
- ドメインランダマイゼーション
- 残差強化学習
- モデルの解釈
- CAM
- 蒸留
- モデル圧縮
- 量子化
- プルーニング
- AI による経営課題の解決と利益の創出
- 法の順守
- ビッグデータ
- IoT
- RPA
- ブロックチェーン
- CRISP-DM
- MLOps
- BPR
- クラウド
- Web API
- データサイエンティスト
- プライバシー・バイ・デザイン
- オープンデータセット
- 個人情報保護法
- 不正競争防止法
- 著作権法
- 特許法
- 個別の契約
- データの網羅性
- 転移学習
- サンプリング・バイアス
- 他企業や他業種との連携
- 産学連携
- オープン・イノベーション
- AI・データの利用に関する契約ガイドライン
- アノテーション
- 匿名加工情報
- カメラ画像利活用ガイドブック
- ELSI
- ライブラリ
- Python
- Docker
- Jupyter Notebook
- 説明可能AI (XAI)
- フィルターバブル
- FAT
- PoC
- 著作物
- データベースの著作物
- 営業秘密
- 限定利用データ
- オープンデータに関する運用除外
- 秘密管理
- 個人情報
- GDPR
- 十分性制定
- 敵対的な攻撃(Adversarial attacks)
- ディープフェイク
- フェイクニュース
- アルゴリズムバイアス
- ステークホルダーのニーズ
- コーポレートガバナンス
- 内部統制の更新
- シリアス・ゲーム
- 炎上対策とダイバーシティ
- AI と安全保障・軍事技術
- 実施状況の公開
- 透明性レポート
- よりどころとする原則や指針
- Partnership on AI
- 運用の改善やシステムの改修
- 次への開発と循環
- 統計検定3級程度の基礎的キーワードと計算問題
申し込む
勉強
深層学習教科書 ディープラーニング G検定(ジェネラリスト)公式テキスト 第2版を読む
第1章: 人工知能(AI)とは
-
人工知能: 推論、認識、判断など、人間と同じ知的な処理能力を持つ機械(情報システム)
- ただし、知的や知能に対して定義が明確でない分、研究者の間で様々な解釈が発生している。
-
人工知能のレベル分け
- レベル1: シンプルな制御プログラム(非人工知能)
- レベル2: 古典的な人工知能
- レベル3: 機械学習を取り入れた人工知能
- レベル4: ディープラーニングを取り入れた人工知能
- AI効果: 人工知能の成果が、「それは単純な自動化であって知能とは関係ない」と結論付ける人間の心理的な効果
-
エニアック(ENIAC): 1946年、アメリカ、ペンシルベニア大学で開発された、巨大電算機。
- 17,468本の真空管を持ち
- 圧倒的な計算力を誇っていた。
-
ダートマス会議: 1956年、アメリカで開催され会議
- 人工知能という言葉が初めて使われた会議
- 参加者: 後の人工知能や情報理論の研究で重要な役割を果たす著名な研究者が多数参加した。
- マーヴィン・ミンスキー
- ジョン・マッカーシー
- アレン・ニューウェル: ロジック・セオリストのデモを実施
- ハーバート・サイモン: ロジック・セオリストのデモを実施
- クロード・シャノン
-
人工知能の歴史
- 第1次AIブーム: 推論・探索の時代(1950年代後半〜1960年代)
- 特定の問題に対して解を提示できる
- トイ・プロブレムを解くことができる
- 複雑な現実問題を解くことができない
- 1970年代に冬の時代に入る
- 第2次AIブーム: 知識の時代(1980年代)
- コンピュータに知識を入れるアプローチが主流
- エキスパートシステム: 大量のデータ(専門知識)を溜め込んだシステム
- 1995年ごろから冬の時代に入る
- 第3次AIブーム: 機械学習・」特徴表現学習の時代(2010年代〜)
- ビッグデータの活用が可能に
- 機械学習の実用化
- 特徴量: 対象を認識する際に注目すべき特徴を定量的に表したもの
-
ディープラーニングを用いた人工知能が、人間の碁のチャンピオンに勝利
第2章: 人工知能をめぐる動向
-
探索木:
- 幅優先探索
- 出発点から近いノード順に検索
- 最短距離でゴールにたどり着く解を必ず見つけることができる
- 複雑な迷路になるとメモリ不足が発生する
- 深さ優先探索
- 出発点からノードを行けるところまで行って探索を行う
- 行き止まりに到達したら、ひとつ前のノードに戻って再度行けるところまで探索する
- メモリが小さくて済む
- ハノイの塔:
- プランニング
- ロボットの行動計画
- STRIPS(Stanford Research Institute Problem Solber): プランニングを<前提条件>/<行動>/<結果>という三つの組み合わせで記述する手法
- SHRDLU
- 英語による指示を受け、コンピュータ画面に描画される「積み木の世界」を動かすことができた。
- 1968年〜1970年
-
テリー・ウィノグラード
- 後にヒューマン・コンピュータ・インタフェースを研究
- Googleの創業者の一人、ラリー・ペイジを育てた
- Cycプロジェクトへ引き継がれる
-
コスト: ヒューリスティックな知識を用いて、コスト計算を行い、コストがかかりすぎる探索を省略する。
- コストの例
- 二点間の移動: 時間やお金
- ボードゲーム: 駒の数や位置関係によって算出されたスコア
-
Mini-Max法: 自分の行為のスコアを最大にし、相手の行為のスコアを最小にする戦略
- αβ法: Mini-Max法による探索をできるだけ減らす手法
- αカット: 最大のスコアを選択する過程でスコアが小さいノードが出現したら、その時点でそのノードを検索対象から外す。
- βカット: スコアが最小のものを選ぶ過程で、すでに出現したスコアよりも大きいノードが現れた時点でその先につながるノードの探索をやめてしまうこと。
-
モンテカルロ法: シミュレーションや数値計算を乱数を用いて行う手法の総称
- 囲碁においては、ある程度進んだ盤面を起点として、コンピュータ同士がランダムな手を差して勝率の高い手を選択する
- プレイアウト: ゲームを終局させること
- 数多く打って最良のものを選ぶ
- ブルートフォース(力任せ)
-
人工無能: 特定のルール・手順に沿って会話を機械的に処理するだけで、実際は会話の内容を理解している訳ではない。
- チャットボット/おしゃべりボット
- イライザ(ELIZA): 相手の発言をあらかじめ用意されたパターンと比較し、パターンに合致した発言があると、そのパターンに応じた発言を返答する仕組み
- 人工無能の元祖
- 1964年~1966年
-
ジョセフ・ワイゼンバウム
- コンピュータに意思決定を任せることの危険性を警告
- イライザ効果: 意識的にはわかっていても、無意識的にコンピュータの動作が人間と似ていると仮定する傾向を指す。これは、プログラミングの限界の自覚とプログラムの出力を生む動作との微妙な認知的不協和の結果とされる。
- 会話ボットや人工無能の研究に展開
- オンラインセラピストのシステムへの発展
-
エキスパートシステム: 専門分野の知識を取り込み、その分野のエキスパートのように振る舞うプログラム
- マイシン(MYCIN): 血液中のバクテリアの診断支援
- スタンフォード大学
- 1970年代
- 500のルールがあらかじめ用意されたルールベースのプログラム
- 正答率は69%、専門家は80%、専門医ではない医師よりは正確
- 限界
- 知識獲得が困難
- 最大の知識源である人間の専門家からの知識獲得が困難
- ルール間の一貫性確保などの知識ベースを保守するのが困難
-
意味ネットワーク(semantic network): 概念をラベルの付いたノードで表し、概念間の関係をラベルの付いたリンクで結んだネットワーク
- is-aの関係: 継承関係、上位概念と下位概念を紐付ける。推移律
- part-ofの関係: 属性を表す。全体と部分の関係
-
Cycプロジェクト: すべての一般常識をコンピュータに取り込もうとしたプロジェクト
- 1984年開始
- ダグラス・レナート
-
オントロジー: 対象とする世界の情報処理的モデルを構築する人が、その世界をどのように"眺めたか"、言い換えるとその世界には"何が存在している"とみなしてモデルを構築したかを明示的にしたものであり、その結果得られた基本概念や概念間の関係を土台にしてモデルを記述できる概念体系
- 知識の共有と活用を目的としている。
- 「言葉(語彙)」や「その意味」、また「それらの関係性」を、他の人とも共有できるように、明確な約束事として定義
- 二つの流れ
- ヘビーウェイトオントロジー: 対象世界の知識をどのように記述すべきかを哲学的にしっかり考えて行うもの。
-
ライトウェイトオントロジー: 効率を重視し、とにかくコンピュータにデータを読み込ませてできる限り自動的に行うもの。
- データマイニングで利用される
- セマンティックWeb: Webサイト同士が持つ意味をコンピュータに理解させ、コンピュータ同士で処理を行わせるための技術
- LOD(Linked Open Data): コンピュータ処理に適したデータを公開・共有するための技術
- ワトソン: 質問応答システム
- 2011年にアメリカのクイズ番組で歴代の人間チャンピオンと対戦し勝利した
- IBMが開発した
- Question-Answering(質問応答)の研究成果
- ウィキペディアの情報をもとにライトウェイトオントロジーを生成
- 質問に含まれるキーワードと関連しそうな答えを高速に検索
- 東ロボくん: 東大入試合格を目指す人工知能
- 2011年〜2016年
- 2016年6月の進研模試では偏差値57.8をマーク
- 質問の意味を理解しているわけではない。
- 読解力に問題があり、何らかの技術的なブレイクスルーがない限り、東大合格は不可能という理由で凍結
-
機械学習: 人工知能のプログラム自身が学習する仕組み
- サンプルデータを通してデータに潜むパターンを学習
- サンプルデータの数が多ければ多いほど、望ましい学習結果が得られる
- 2000年代にビックデータを使った研究が進んだ
- 利用用途
- レコメンデーション
- スパムフィルター
- 統計的自然言語処理:
- ディープラーニング: ニューラルネットワークを多層化したもの
-
ニューラルネットワーク: 人間の神経回路を真似することで学習を実現
- 単純パーセプトロン
- フランク・ローゼンブラット
- 1958年
- マービン・ミンスキー
- パーセプトロンの性能と限界に関する論文: 特定の条件下の単純パーセプトロンでは、直線で分離できるような単純な問題しか解けないということが指摘された。
- 1969年
- 工夫が行われた
- 1986年、誤差逆伝播法
- 2006年: 自己符号化器
-
ILSVRC(ImageNet Large Scale Visual Recognition Challenge): 画像に写っているものが何なのかをコンピュータが推測し、その精度を競う
- 2011年以前は、機械学習が主流。そのエラー率は、2010年-28%、2011年-26%となっていた。
- 2012年、初参加のトロント大学: Super VisionがAlexNetでエラー率15.3%を達成し、2位の東大ISIのエラー率26.1%に大差をつけて勝利した。
- 以降は、ディープラーニングが主流となり、2012年-16%、2013年-12%、2014年-7%、2015年-3.6%、2016年-3%と、エラー率は激減していった。
第3章: 人工知能分野の問題
-
トイ・プロブレム: コンピュータが扱えるように、本質を損なわない程度に問題を簡略化したもの
- 現実世界の問題に取り組んだりする練習
- アルゴリズムの性能比較に利用
- 非常に限定された状況の問題になっていたため、現実世界の問題に適用できない場合が多い
-
フレーム問題:今しようとしていることに関係のある事柄だけを選び出すことが、実は非常に難しいこと
- 1969年
- ジョン・マッカーシー/パトリック・ヘイズが提唱
-
チューリングテスト: 人工知能ができたかどうかを判定する方法
- イギリスの数学者アラン・チューリングが提唱
- 別の場所にいる人間がコンピュータと会話をし、相手がコンピュータだと見抜けなければコンピュータには知能があるとする
- ローブナーコンテスト: チューリングテストに合格するソフトウェアを目指すコンテスト
- 1991年以降、毎年開催
-
強いAIと弱いAI
- アメリカの哲学者ジョン・サール
- 1980年、「Minds, Brains, and Programs」の論文中で提示
- 強いAI: 適切にプログラムされたコンピュータは人間が心を持つのと同じ意味で心を持つ。また、プログラムそれ自身が人間の認知の説明である。
- 弱いAI: コンピュータは人間の心を持つ必要はなく、有用な道具であれば良い
- 中国語の部屋
- コンピュータは記号操作を行っているだけで、心にとって本質的な意味論を欠いていると主張
- ロジャー・ペンローズ: 意識は脳の中にある微細な管に生じる量子効果が絡んでいるので、既存のコンピュータでは「強いAI」は実現できないと主張
- スティーブン・ホーキングと共同研究
- 数学者
- 皇帝の新しい心 - コンピュータ・心・物理法則
-
シンボルグラウンディング問題(記号接地問題): 記号(シンボル)とその対象がいかにして結び付くかという問題
- 1990年
- 認知科学者のスティーブン・ハルナッドが提唱
- 身体性: 知能が成立するためには身体が不可欠であるという考え方
-
知識獲得のボトルネック: コンピュータが知識を獲得することの難しさ
- 機械翻訳
- 1970年代後半: ルールベース機械翻訳が一般的
-
1990年代以降: 統計的機械翻訳が一般的
- 性能は飛躍的に向上したが、実用レベルには達していなかった。
- コンピュータが「意味」を理解していないことが最大の理由
- 近年では、ニューラル機械翻訳が主流となった。
-
特徴量設計
- 機械学習では、注目すべきデータの特徴の選び方が性能を決定づける
- 特徴量: 注目すべきデータの特徴を量的に表したもの
- 機械学習は、特徴量そのものの選択にはかかわらず、人間が選択した特徴量が利用される
- 特徴表現学習: 特徴量を機械学習自身に発見させるアプローチ
-
ディープラーニング
- 「特徴表現学習」を行う機械学習アルゴリズムの一つ
- ニューラルネットワーク自身が複数ステップのコンピュータプログラムを学習できるということ
- 与えられた問題を解くために必要な処理に役立つ情報が特徴量として抽出されている
- コンピュータが抽出した特徴量を人間が本当の意味で理解することはできない。
- 判断理由が示せないブラックボックス型の人工知能
-
シンギュラリティー: AIが人類の知能を超える技術的特異点(転換点)や、AIがもたらす世界の変化を示す言葉未来学上の概念
- 人間の想像力が及ばない超越的な知性が誕生する
- 未来学者で実業家のレイ・カーツワイルが提唱
- 技術的特異点が2045年に発生
- 2029年頃、人工知能が人間よりも賢くなると予測
- 特異点: ある基準が適用できなくなる点。数学や物理学で用いられる概念
- スティーブン・ホーキング: 完全な人工知能を開発できたら、それは人類の終焉を意味するかもしれない
- イーロン・マスク: 人工知能にはかなり慎重に取り組む必要がある。結果的に悪魔を呼び出していることになるからだ。
- ビル・ゲイツ: 私も人工知能に懸念を抱く側にいる一人だ
第4章: 機械学習の具体的手法
-
教師あり学習: 与えられたデータを元に、そのデータがどんなパターンになるかを識別-予測する。入力に対する出力が与えられている。
- 例:
- 過去の売上から、将来の売上を予測したい
- 与えられた動物の画像が、何の動物かを識別したい。
- 英語の文章が与えられたときに、それを日本語の文章に翻訳したい。
- 入力と出力の間にどのような関係があるかを学習する手法
- 回帰問題: 連続値を予測する問題
- 分類問題: 離散値を予測する問題
-
教師なし学習: 入力データそのものが持つ構造・特徴が学習の対象。入力に対する出力は与えられない。
- 例
- ECサイトの売上データから、どういった顧客層があるのかを認識したい
- 入力データの各項目間にある関係性を把握したい。
-
強化学習: 行動を学習する仕組み。ある環境下で、目的とする報酬(スコア)を最大化するためにはどのような行動をとっていけばいいかを学習する。
- 例
- 自動運転技術
-
線形回帰(linear regression): データ(の分布)があったときに、そのデータに最も当てはまる直線を考える
- 回帰問題に利用
- 2次元ではなく、もっと次元が大きくても良い
- 正規化項を加えた、ラッソ回帰、リッジ回帰などがある
-
ロジスティック回帰(logistic regression):
- 分類問題に利用
- シグモイド関数: 任意の値を0から1の間に写像する。与えられたデータが正例か負例になるかの確率が求められる。
- 閾値を設定することで分類を調整できる。
- ソフトマックス関数: 複数分類をするために、シグモイド関数の代わりに利用する
-
ランダムフォレスト: ランダムに選んだデータに対して、ランダムに決定木を複数作成する
- データが持つ特徴量からランダムで、分岐路に使う特徴量を選択して決定木を作る。
- 複数の決定木を作る
- ブートストラップサンプリング: 学習に用いるデータをそれぞれの決定木にランダムに割り付けて学習に用いる。
- 複数の決定木の結果で多数決をとることで、最終的な結果を出力する。
- アンサンブル学習: 複数のモデルで学習を行うこと。
- バギング: 全体から一部のデータを用いて複数のモデルを用いて学習する方法
-
ブースティング: 一部のデータを繰り返し抽出し、複数のモデルを学習させる。
- 複数モデルを逐次的に作成する
- 1つのモデルを作成し、学習します。次に作成するモデルでは、そこで誤認識してしまったデータを優先的に正しく分類できるように学習する。
- モデル部分では決定木が用いられる
- 勾配ブースティング(gradient boosting):
- 一般的にランダムフォレストよりも良い精度が得られる。一方で、学習を並列化できないため学習にかかる時間が多くなる。
-
サポートベクターマシン(Support Vector Machine,SVM)
- 高度な数学的理論に支えられた手法: 異なるクラスの各データ点との距離が最大となるような境界線を求めることで、パターン分類を行う
- ディープラーニング以前は機械学習で最も人気のあった手法の一つ
- マージン最大化: 距離を最大化すること
- データをあえて高次元に写像することで、その写像後の空間で線形分類できるようにするというアプローチがとられた。
- カーネル関数: 写像に用いられる関数
- カーネルトリック: 計算が複雑にならないように式変形するテクニックのこと
-
ニューラルネットワーク: 人間の脳の中の構造を模したアルゴリズム
- 単純パーセプトロン: 複数の特徴量を受け取り、1つの値を出力する。
- 入力層: 入力を受け取る部分
- 出力層: 出力する部分
- 重み: 入力層における各ニューロンと、出力層におけるニューロンの間のつながり。どれだけの電気信号を伝えるかを調整します。
- 活性化関数: 層の間をどのように電気信号を伝播させるかを調整する関数。シグモイド関数等
- 線形分類しか行えない。
- 多層パーセプトロン: 層をさらに追加したもの。
- 隠れ層: 入力層と出力層の間に追加された層。
- 非線形分類が可能に
- 層が増えることによって調整すべき重みの数も増えることになる。
- 誤差逆伝播法: 予測値と実際の値との誤差をネットワークにフィードバックするアルゴリズム
- 学習するデータ数が十分に多く無い場合、識別・予測性能としてはブースティングやSVMの方が優れている。
- ディープラーニング登場前は、そこまで人気のある手法ではなかった。
-
自己回帰モデル(auroregressive model, ARモデル): 時系列を持つデータを元に将来の値を予測するモデル
- 時系列データを対象とする。
- 将来の数値を予測したい時に使う
- 例
- 株価の日足の推移
- 世界人口の年ごとの推移
- インターネット通信におけるパケット通信量の推移
- ベクトル自己回帰モデル(vector auroregressive model, VARモデル): 複数種類の入力を使うときのARモデル
-
階層なしクラスタリング(k-means法): 元のデータからグループ構造を見つけ出し、それぞれをまとめる
- データをk個のグループに分けることを目的としている。kは自分で設定する
- クラスタ: グループのこと。
- クラスタ分析とも
-
階層ありクラスタリング(ウォード法): クラスタの階層構造を求める方法
- 樹形図で表現される
- デンドログラム
-
主成分分析(Principal Component Analysis、PCA): データの特徴量間の関係性、すなわち相関を分析することでデータの構造を掴む手法
- 特徴量が数が多い場合に用いられる
- 相関を持つ多数の特徴量から、相関のない少数の特徴量へと次元削減することが主なる目的
- 特異値分解(Singular Value Decomposition, SVD)
- 多次元尺度構成法(Multi-Dimensional Scaling, MDS)
- t-SNE(t-distributed Stochastic Neighbor Embedding)
-
協調フィルタリング(collaborative filtering):
- レコメンデーションに用いられる手法
- 例
- ECサイト等でユーザーの購買履歴を元に好みを分析し、関心がありそうな商品をお勧めする
- 対象ユーザーは買っていないが、似ているユーザーは買っている商品を推薦する。
- ユーザー間の類似度を定義する必要がある。
- コールドスタート問題: 事前にある程度の参考できるデータがない限り、推薦を行うことができない
- コンテンツベースフィルタリング: 商品側に何かしらの特徴量を付与し、特徴が似ている商品を推薦する
-
トピックモデル(topic model): 複数のクラスタにデータを分類する
- 潜在的ディリクレ配分法(latent Dirichlet allocation, LDA)
- 文書データを対象とした際、各文書は「複数の潜在的なトピックから確率的に生成される」と仮定したモデル
-
強化学習は将来の累積報酬が最大となるような行動を求める必要がある
- 活用(exploitation): 現在知っている情報の中から報酬が最大となるような行動を選ぶ
- 探索(exploration): 現在知っている情報以外の情報を獲得するために行動を選ぶ
- 活用と探索はトレードオフの関係にある
-
バンディットアルゴリズム(bandit algorithm)
- ε-greedy方策(epsilon-greedy policy): 基本的には活用をする、すなわち報酬が最大となる行動を選択するが、一定確率εで探索をする。
- UCB方策(upper-confidence bound policy)
- 方策(policy): ある状態からとりうる行動の選択肢、およびその選択肢をどう決定するかの戦略
-
マルコフ決定仮定モデル: 状態遷移にマルコフ性を仮定したモデルのこと
- マルコフ性: 現在の状態から未来の状態に遷移する確率は、現在の状態にのみ依存し、それより過去の状態には一切依存しない
-
価値関数
- 最適な方策を見つけ出すのは非常に困難な場合が多い
- 最適な方策を直接求める代わりに、状態や行動の「価値」を設定し、その価値が最大となるように学習をするアプローチ
- ある状態や行動によって得られる将来の累積報酬をその状態・行動の価値とすれば、価値が最大となる(状態・)行動が求まり、適切な行動を取れるようになるはずだ
- 状態価値関数
- 行動価値関数(価値関数): Q値(Q-value)
- Q学習
- SARSA
-
方策勾配: 方策をあるパラメータで表される関数とし、(累積報酬の期待値が最大となるように)そのパラメータを学習することで、直接方策を学習していくアプローチ
- ロボット制御など、特に行動の選択肢が大量にあるような課題で用いられる。
- REINFORCE: 方策勾配法ベースの手法。AlphaGoにも活用
- Actor-Critic: 価値関数ベース及び方策勾配ベースの考えを組み合わせた手法。行動を決めるActorと方策を評価するCriticから成っている。
- A3C(Asynchronous Advantage Actor-Critic)
- 作成したモデルがどれくらいの性能を持っているのかを適切に評価する必要がある
-
モデルの評価: 未知のデータに対しての予測能力を見る
- 未知のデータは準備することができない。
- 擬似的に未知のデータを作り出す必要がある。
- 手元にある全データを、学習用のデータと評価用のデータにランダムに分割して評価する。
- 訓練データ: 分割されたデータのうち、学習用のデータのこと
- テストデータ: 分割されたデータのうち、評価用のデータのこと
-
交差検証: データを分割して評価すること
- ホールドアウト検証: 事前にデータを訓練データとテストデータに分割しておく
- k-分割交差検証: 訓練データ・テストデータの分割を複数回行い、それぞれで学習・評価を行う
-
評価指標
- 混同行列: 予測値と実際の値の組み合わせ表
- 真陽性(True Positive, TP):
- 偽陽性(False Positive, FP): 第一種過誤
- 偽陰性(False Negative, FN): 第二種過誤
- 真陰性(True Negative, TN):
- 評価指標: 何を評価したいのかを明確にしておかなければならない
- 正解率(accuracy): 全データ中、どれだけ予測が当たったかの割合
- 適合率(precision): 予測が正の中で、実際に正であったものの割合
- 再現率(recall): 実際に正であるものの中で、正だと予測できた割合
- F値(F measure): 適合率と再現率の調和平均。適合率のみあるいは再現率のみで判断すると、予測が偏っている時も値が高く成ってしまうので、F値を用いることも多い。
- 過学習: モデルが訓練データにのみ最適化されてしまっている状態
- 未学習: 全体の汎化性能が低下する
- 正則化: 学習の際に用いる式に項を追加することによってとりうる重みの値の範囲を制限し、過度に重みが訓練データに対してのみ調整されることを防ぐ
-
L1正則化: 一部のパラメータの値をゼロにすることで、特徴選択を行うことができる。
- ラッソ回帰
-
L2正則化: パラメータの大きさに応じてゼロに近づけることで、汎化されたなめらかなモデルを得ることができる。
- リッジ回帰
- Elastic Net: L1正則化とL2正則化を組み合わせた手法
- ROC曲線(receiver operating characteristic curve): 閾値を変化させていった場合に、予測の当たり外れがどのように変化していくのかを表したもの
- TPR(True Positive Rate): TP/(TP + FN)
- FPR(False Positive Rate): FP/(FP + TN)
- モデルが全く予測できない場合(ランダム予測と同じ): ROC曲線は、対角線となる
- すべてのデータが完全に予測できた場合: ROC曲線は、左上2辺と一致する
- AUC: ROC曲線より下部の面積のこと、AUCが1に近いほどモデル性能が高いことを表す。
-
モデルの解釈: どのように予測しているのか。機械学習のモデルが説明可能か、解釈可能かは重要な課題
- どんな入力によって予測結果が得られるのかを考察する。
- LIME: 元々の複雑なモデルを単純な線形モデルに近似するとによって、予測の説明性を持たせようとしている
- SHAP:
-
モデルの選択と情報量
- モデルを複雑にすればするほど複雑な表現ができる、すなわち難しいタスクも予測できる可能性はある。
- モデルを複雑にすればするほど表現しなくても良いノイズ部分まで表現してしまう可能性もある。
- オッカムの剃刀: ある事柄を説明するためには、必要以上に多くを仮定するべきでない
- 赤池情報量規準(Akaike's Information Criterion,AIC)
- モデルの複雑さと予測精度のバランス
- AIC = -2logL + 2k
- L: モデルの尤度
- k: パラメータ数
第5章: ディープラーニングの概要
-
多層パーセプトロン: 入力層・隠れ層・出力層から構成されるニューラルネットワーク
- 非線形分類が可能
-
ディープラーニング: 隠れ層を増やしたニューラルネットワーク
- ディープラーニングはニューラルネットワークを応用した手法
- 人工知能の研究分野を指す言葉
- モデル自体は、ディープニューラルネットワークと呼ぶ
- 誤差逆伝播法: モデルの予測結果と実際の正解値との誤差をネットワークの出力層から入力層にかけて逆向きにフィードバックさせる形でネットワークの重みを更新する。
- ネットワークを深くすると、誤差が最後まで正しく反映されなくなってしまう
- モデルの精度が落ちる
- 隠れ層が1つのニューラルネットワークでは際立った成果は得られず、SVMなどの他の機械学習の手法がよく用いられていた。
-
勾配消失問題: 隠れ層を遡るごとに、伝播していく誤差がどんどん小さくなり、入力層付近でフィードバックすべき誤差がほとんど0になってしまうこと
- 誤差の伝播に使われる数式内で行われる微分に起因する。
- シグモイド関数の微分は最大値が0.25にしかならない
-
ニューラルネットワークの問題点解決
- オートエンコーダ: 自己符号化器、可視層と隠れ層の2層からなるネットワーク
- 2006年、トロント大学、ジェフリー・ヒントン
- 可視層: 入力層と出力層がセットになったもの
- 可視層(入力層)→隠れ層→可視層(出力層)の順に伝播し、出力される
- 隠れ層には「入力の情報が圧縮されたもの」が反映されることになる
- 入力層の次元よりも、隠れ層の次元を小さくしておくこと
- エンコード: 入力層→隠れ層
- デコード: 隠れ層→出力層
- 積層オートエンコーダ: ディープオートエンコーダ。オートエンコーダを積み重ねること。
- 入力層に近い層から順番に学習させるという、逐次的な方法をとった。
- 事前学習: オートエンコーダを順番に学習していく手順のこと
-
最後にロジスティック回帰層(シグモイド関数あるいはソフトマックス関数による出力層)を足すことで、教師あり学習を実現している。
- 最後のロジスティック回帰層にも重みの調整が必要になる
- ファインチューニング: 最後に仕上げとしてディープニューラルネットワーク全体で学習を行う。
- 積層オートエンコーダは事前学習とファインチューニングの工程で構成されている
- 深層信念ネットワーク(deep belief networks): 教師なし学習(オートエンコーダに相当する層)に制限付きボルツマンマシンという手法を用いている。
- 近年では、利用されなくなった。
- 計算コストが非常に高くつくという欠点
- 事前学習なしにネットワーク全体を学習することができるようになったため
-
CPUとGPU
- ムーアの法則: 半導体の性能と集積は、18ヶ月ごとに二倍になる
- ゴードン・ムーア: Intel社の創設者。
- CPU(Central Processing Unit): コンピュータ全般の作業を処理する役割
- GPU(Graphics Processing Unit): 画像処理に関する演算を担う
- GPGPU(General-Purpose computing on GPU): 画像以外の目的で最適化されたGPU
- NVIDIA社: ディープラーニング向けGPGPUの開発をリード
- Google: テンソル計算処理に最適化された演算処理装置を開発。TPU(Tensor Processing Unit)
- 学習とはすなわちモデルがもつパラメータの最適化
- バーニーおじさんのルール: モデルのパラメータ数の10倍のデータ数が必要
-
活性化関数
- 出力層では、シグモイド関数やソフトマックス関数を用いなければ出力を確率で表現することができない
- 隠れ層では、任意の実数を(非線形に)変換することができる関数であれば、特にどんな関数であろうと問題はない。
- 活性化関数が微分できないと、誤差逆伝播法が使えない
- 効率的に重みを求めるには任意の実数で微分できなくてはならない
- 隠れ層の活性化関数を工夫するアイデアは、第3次AIブームの前から存在していた。
- tanh関数(ハイパボリックタンジェント): -1から1の範囲をとる
- 微分時の最大値が1のため、勾配が消失しにくい
- シグモイド関数よりも勾配が消失しにくいが、完全に勾配消失問題を解決したわけではない。
- ReLU関数(Rectified Linear Unit): y = max(0,x)
- xが0よりも大きい限り、微分値は常に最大値である1が得られる。
- 誤差逆伝播法の際に勾配が小さくなりにくい(勾配消失しにくい)
- ディープニューラルネットワーク全体をそのまま効果的に学習できる場合が多くなった
- xが0以下の場合は微分値も0になり、学習がうまくいかない場合もある
- Leaky ReLU: x < 0においてわずかな傾きを持っている。ReLUよりも良い活性化関数であるとは言い切れない
- Parametric ReLU: x < 0部分の直線の傾きを学習によって最適化した手法
- Randomized ReLU: 複数の傾きをランダムに試す手法
- モデルの予測値と、実際の値との誤差をなくすこと
- 誤差関数: 数学的に誤差を関数として捉える。
- 関数の最小化問題: 機械学習で誤差を小さくしていく問題
- ニューラルネットワークにおけるモデルのパラメータをうまく調整して誤差関数を最小化したいわけですから、それぞれの層の重みで誤差関数を微分した値がゼロになるような重みを求めることで誤差を最小化する。
-
勾配降下法: 勾配に沿って降りていくことで解を探索する手法
- 目的のxが得られるまで勾配に沿って降りていき、解を探索するわけなので、この式を繰り返し計算することになります。
- イテレーション: これまでに繰り返し計算を行った回数。kで表される。
- 学習率: 勾配に沿って一度にどれだけ降りていくかを決めるもの。αで表させれるハイパーパラメータ。とても重要で、設定次第で最適解が得られないこともある。
- ニューラルネットワークでは、各パラメータ(重み)に対して勾配降下法を適用することで、最適値を求めます。
- 学習とは、この勾配降下法を用いて繰り返し計算を行うこと。
- 最適解が見つかるまでひたすら探索を行うのでとても時間がかかる。
- 勾配降下法には居所最適解と大域最適解があり、見せかけの最適解である局所最適解に陥ってしまう可能性がある。
- 学習率の値を大きく設定することで回避ができるが、最適解を飛び越えてしまう可能性もある。
- 鞍点: ある次元から見れば極小であるものの、別の次元から見ると極大となってしまっているもののこと
- プラトー: 一度鞍点付近に陥ると、そこから抜け出すことが困難になる。停留状態のこと。
- どの方向に沿って勾配を進んでいるときに学習率を大きく(あるいは小さく)すべきかを考える必要がある。
- モーメンタム: 最適化の進行方向に学習を加速させることで、学習の停滞を防ぐ
- Adagrad,Adadelta, RMSprop, Adam, AdaBound, AMSBound
-
ドロップアウト: 学習の際にランダムにニューロンを「ドロップアウト」させるもの。
- 過学習を防ぐ
- アンサンブル学習
-
早期終了(early stopping): 学習が進むにつれてテストデータに対する誤差関数の値は右肩上がりになってしまいます。その上り始めが過学習のし始めと考え、その時点で学習を止める
- シンプルこの上ない手法
- どんなモデルにも適用できるため、非常に強力
- ノーフリーランチ定理: あらゆる問題で性能の良い汎用最適化戦略は理論上不可能
- 二重降下現象: 一度テストデータに対する誤差が増えた後、再度誤差が減っていくという現象。
-
学習の「途中」を最適化する手法
- 活性化関数の工夫
- ドロップアウト
- 早期終了
- …などなど
-
学習の「始め」を最適化する手法
- 正則化: データ全体を調整する処理
- 各特徴量を0~1の範囲に変換する処理
-
標準化: 各特徴量の平均を0、分散を1にする処理。標準化によってその特徴量は標準正規分布に変換される
- 白色化: 各特徴量を無相関化した上で標準化する
- 機械学習全般に対して効果的であるものの、ディープニューラルネットワークの学習では、その効果が薄くなるケースがある。
- 重みの初期値を工夫する
- 乱数にネットワークの大きさに合わせた適当な係数をかける
- シグモイド関数に対してはXavierの初期値
- ReLU関数に対してはHeの初期値
-
バッチ正規化: 各層において活性化関数をかける前に伝播してきたデータを正規化する処理を加える
- 非常に強力な手法
- 学習がうまくいきやすくなる。
- 過学習しにくくなる。
第6章: ディープラーニングの手法
-
畳み込みニューラルネットワーク(Convolutional Neural Network,CNN):
- 画像データ: 縦・横・奥行き(色情報を持つ。チャンネルと呼ばれる)
- 画像データに適した構造として考えられている。
- 画像データは、縦横の位置関係が重要な意味を持つ、一列に分解して入力すると大事な関係が失われてしまう。
- 画像認識は、ディープラーニングの中でも一番研究が活発な分野
- CNNの中にもさまざまな種類のモデルが存在する
- 人間が持つ視覚野の神経細胞の2つの働きを模して見ようという発想
- 単純型細胞(S細胞): 画像の濃淡パターン(特徴)を検出する
- 複雑型細胞(C細胞): 特徴の位置が変動しても同一の特徴であるとみなす。
- ネオコグニトロン: S細胞とC細胞の働きを組みこんが初めてのモデル
- 福島邦彦
- S細胞層とC細胞層を交互に複雑に組み合わせた構造
- add-if silentと呼ばれる学習方法を用いる
- 微分を用いない
- LeNet:
- 1998年、ヤン・ルカン
- 畳み込み層とプーリング層(サブサンプリング層)の2種類の層を複数組み合わせた構造
- 誤差逆伝播法を学習に用いる
- 畳み込み層:
-
畳み込み処理: フィルタ(またはカーネル)を用いて画像から特徴を抽出する操作
- 画像とフィルタの値をそれぞれかけ合せて総和をとっていく処理
- フィルタの中の値をどうするかによって、画像から得られる特徴が変わる
- フィルタをどういった値にすればいいかを学習する
- フィルタの値が通常のニューラルネットワークで言うところの重みに当たる
- 人間の視覚野が持つ局所受容野に対応している、移動不変性の獲得に貢献する
- 位置のズレに強いモデルができる
- プーリング層:
-
プーリング処理: 画像サイズを決められたルールに従って小さくする。ダウンサンプリングやサブサンプリングともいう
- 最大値プーリング: ある小領域ごとの最大値を抽出する
- 平均値プーリング: ある小領域ごとの平均値を抽出する
- 画像のズレに対する頑健性を持つ
- 全結合層: 通常のニューラルネットワークと同じ構造を積層する
- 特徴を2次元から1次元へ変換する
- 最近のCNNの手法では用いられず、代わりに特徴マップの平均値を一つのユニット(ニューロン)の値にするGlobal Average Poolingという処理が行われる。
-
一般の物体を認識する際の課題
- 同じ物体でも、角度が異なれば画像としては全く見え方が異なる。
- 同じ物体でも、拡大縮小によって全く見え方が異なる。
- 同じ物体でも、光の当たり方(例えば昼と夜)によって全く見え方が異なる。
-
網羅したデータが必要
- あらゆるパターンを想定した画像を準備することは不可能
- データ拡張:手元にある画像から擬似的に別の画像を生成する
-
ランダムにいくつかの処理を施して新しい画像を用意する
- 上下左右にずらす
- 斜めに歪める
- 上下左右を反転する
- 一部を切り取る
- 拡大・縮小する
- コントラストを変える
- 回転する
- Cutout: 画像の一部分を遮蔽したようなデータを擬似的に生成すること
- Mixup: 2枚の画像を合成することで、存在しない画像を擬似的に生成すること
- CutMix: CutoutとMixupを組み合わせた手法
- やみくもにしてはいけない。現実的にあり得るデータを再現する
-
AlexNet: 2012年のILSVRCで圧倒的な精度を誇った
- 畳み込み層→プーリング層→畳み込み層→プーリング層→畳み込み層→畳み込み層→畳み込み層→プーリング層→全結合層(3層)という構造
- VGG: 畳み込み層→畳み込み層→プーリング層の塊を繰り返し、16層まで積層した
- 深くなっても学習できるように、いったん少ない層数で学習した後、途中に畳み込み層を追加して深くする学習方法を採用
- GoogLeNet: 同時に異なるフィルタサイズの畳み込み処理を行うInceptionモジュールを導入
- 着目する範囲が異なる特徴を合わせて捉えることができる
- 10から20層程度の深さ
- 「超」深層になると識別精度が落ちるという問題:
-
ResNet
- Skip connection: 層を飛び越えた結合を加える
- 層が深くなっても、層を飛び越える部分は伝播しやすくなる。
- 様々な形のネットワークのアンサンブル学習になっている。
- 現在では、100層以上のネットワークが構築されることも珍しくない
-
MobileNet: モバイル端末などの使用できるメモリ量が限られている環境でも利用できるように、畳み込み層のパラメータ数を削減したモデル
- 通常の畳み込み処理の代わりに Depthwise Separable Convolutionを用いる
- 通常の畳み込み処理と比べて計算量を1/8程度に削減している
- 通常の畳み込み処理では、入力特徴マップの空間方向とチャネル方向の両方向に対して積和の処理を行う
- Depthwise Separable Convolutionでは、空間方向とチャネル方向に対して独立に畳み込み処理を行う。
- Depthwise Convolution: 空間方向。特徴マップのチャネル毎に畳み込み処理を行う
- Pointwise Convolution: チャネル方向。1 * 1の畳み込み処理を行う
-
通常の畳み込み処理とDepthwise Separable Convolutionの計算量の比較
- 入力特徴マップのサイズ H * W * N
- 出力チャネル数: M
- フィルタサイズ: K * K
- 通常の畳み込み処理の計算量: O(H W N K^2 M)
- Depthwise Convolutionの計算量: O(H W N K^2)
- Pointwise Convolutionの計算量: O(H W N M)
- 精度は一致しない
-
CNNのネットワーク構造
- CNNにおいて決めなくてはいけない項目
- 層数
- フィルタのサイズ
- フィルタ数
- 特徴マップの連結方法
- 課題
- 人が最適なネットワーク構造を探し出すことは不可能
- スーパーコンピュータを利用しても困難
- 学習により準最適なネットワーク構造の探索を行うことが注目を得た
-
Neural Architecture Search(NAS): リカレントニューラルネットワークと深層強化学習を用いてネットワーク構造を探索する
- リカレントニューラルネットワークが出力した各層のフィルタサイズやフィルタ数などをもとにネットワークを作成し、学習および評価する。
- 認識精度が高くなるよう深層強化学習によりネットワークを生成する部分を学習する
- NASNet: 学習時に生成する単位をResNet、Residual Blockのような塊にする工夫
- MnasNet: 認識精度だけでなくモバイル端末での計算量も考慮する工夫を導入
- EfficientNet: ネットワーク構造の探索によって誕生したモデル。単に高精度なだけでなく、転移学習に有用なモデル
-
「超」深層なネットワークを学習可能となったが、学習に必要な計算量も莫大になった。
- 個人にはもはや実験することが不可能となった。
- ニューラルネットワークによる予測を行いたいときに必要なのは、あくまでも最適化されたネットワークの重み。
- すでに学習済みのネットワークがあるならそれを用いることで学習する必要はなくなる
- 転移学習: 既存の学習ずみモデルに、新たに何層かを自分で付け足し、その層だけを学習するだけで、高性能なネットワークを得る学習方法
-
ファインチューニング: 付け足した層だけではなく、ネットワーク全体を学習する方法
- 汎用的な良い特徴量を抽出してくれるネットワークを元々学習できているため。
-
生成モデル: 画像のデータセットがどのような分布になっているかを推測し、その分布に基づいて、元の画像と似たような画像データを生成する
- ディープラーニングが登場する以前から考えられていた
- 複雑なデータを生成することは困難
- 深層生成モデル: ディープラーニングを取り入れた生成モデル
- 元データセットから画像が持つ潜在空間を学習し、それをベクトルとして表現します。
-
変文オートエンコーダ(Variational AutoEncoder, VAE):
- 入力データを圧縮表現するのではなく、統計分布に変換。平均と分散で表現する
- 入力データが何かしらの分布に基づいて生成されているものだとしたら、その分布を表現するように学習すれば良いという考え
- 入力データはこの統計分布のある1つの点となる
- エンコーダが入力データを統計分布のある1点となる潜在変数に変換
- デコーダは、統計分布からランダムにサンプリングした1点を復元する
-
敵対的生成ネットワーク(Generative Adversarial Network, GAN):
- 元々ニューラルネットワークを採用していたが、畳み込みニューラルネットワークを採用したDCGAN(Deep Convolutional GAN)が考案され、高解像度な画像の生成が可能に。
- ジェネレータ: ランダムなベクトルを入力とし、画像を生成して生成する。
- ディスクリミネータが間違えるような偽物画像を作るように学習していく。
- ディスクリミネータ: 画像を入力とし、その画像が本物か偽物(ジェネレータによって生成された画像)かを予測して出力する
- ジェネレータが生成した画像を見抜けるように学習していく。
- Pix2Pix: GANは、ランダムなベクトルから生成したデータが本物かどうかを予測していたが、このベクトルの代わりにある画像データを入力し、別の画像に変換する処理
- 画像のペアが本物か偽物かを予測
- Cycle GAN: ある画像を変換し、その変換した画像をもとの画像に再度変換します。そのとき、通常のGANのように変換した画像が本物かどうかを予測する。
- 画像のペアを必要としない
-
画像認識分野での応用
- 画像認識タスク: 入力画像に対してその画像に写る代表的な物体クラスの名称を出力するタスク
- 物体クラスすべてに対する確信度を出力する。
- 物体検出タスク: 入力画像に写る物体クラスの識別とその物体の位置を特定するタスク
- 物体の位置は、矩形領域(四角形)とし、その左上の座標と右下の座標を出力する
- 顔検出や自動車の安全機能、監視カメラで活用されている歩行者検出
-
2段階モデル: 大まかな物体の位置を特定した後、その物体クラスを識別する。
- R-CNN: 画像から物体候補領域をSelective Searchというセグメンテーションの方法で抽出します。この物体候補領域を一定の画像サイズにリサイズ後、CNNに入力します。
- CNNで最終判定まで行うのではなく、最上位層の1つ前の層を特徴ベクトルとし、SVMによりクラス識別する
- 処理に時間がかかる。
- Fast R-CNN: R-CNNの構造を簡略化して、高速化したモデル
- 画像全体を入力して特徴マップを獲得することで高速化します。
- Faster R-CNN: Selective SearchをRegion Proposal NetworkというCNNモデルに置き換えて高速化したモデル
- FPN
-
1段階モデル 位置の特定とクラスの識別を同時に行う。処理を単純にできるため、高速な処理を実現
- YOLO(You Only Look Once): 入力画像の各位置における物体領域らしさと矩形領域を直接出力する仕組み
- バッチ正規化や入力画像サイズの高解像度化などの新たなテクニックを導入したモデルも登場し、より高い検出精度を達成している。
- SSD: 領域単位で物体らしさと矩形領域を出力する。
- 特徴マップサイズが徐々に小さくなり、最後の特徴マップは入力画像の1/32程度になる。
- 小さな物体を検出しにくくなるが、途中の特徴マップからも出力することで回避している。
- デフォルトボックス: 矩形領域のテンプレートのようなパターンに対するズレを矩形領域の情報として出力する工夫を導入
- セグメンテーションタスク: 画像の画素ごとに識別を行うタスク
-
セマンティックセグメンテーション: 画像全体対象とする
- 同一クラスの物体をひとまとめにするので、集団の歩行者などを一人一人に分離することができない。
- 1画素の情報から何のクラスかを識別することは不可能。
- FCN(Fully Convolutional Network): CNNをセマンティックセグメンテーションタスクに利用した方法
- CNNは畳み込み層とプーリング層を繰り返し積層することで、特徴マップサイズは小さくなる。このサイズが小さくなった特徴マップの1つの画素は入力画像の広い範囲の情報を集約しているので、1画素ごとにクラス識別ができるようになる。
- SegNet: 畳み込み層とプーリング層を繰り返し積層することで小さくなった特徴マップを徐々に拡大する構造を採用した方法
- 特徴マップを徐々に小さくしていく部分をエンコーダ、徐々に大きくしていく部分をデコーダと言う。
- U-Net: デコーダ側で特徴マップを拡大して畳み込み処理をする際、エンコーダ側の特徴マップを同じサイズになるよう切り出して利用する
- PSPNet: エンコーダとデコーダの間にPyramid Pooling Moduleという複数の解像度で特徴を捉えるモジュールを追加した手法
- Pyramid Pooling Module: エンコーダで得られた特徴マップを異なるサイズでプーリングし、それぞれの大きさで畳み込み処理を行います。
- Dilated covolution/Atrous convolution: カーネルサイズと間隔を設定し、畳み込み演算する範囲を広くしつつ、計算量と学習するパラメータを増やさない
- 例: カーネルサイズ: 33、間隔: 2とすると、入力の77の範囲の情報を集約する。
- DeepLab: Atrous convolutionを導入したモデル
- DeepLab V3+: SegNetやU-Netのようなエンコーダとデコーダの構造、PSPNetのような複数解像度の特徴を捉える機構(ASPP: Atrous Spatial Pyramid Pooling)を採用したモデル
-
インスタンスセグメンテーション: 物体検出した領域を対象とする
- 一人一人を分離できるようになる。
- パノプティックセグメンテーション: 個々の物体をそれぞれ分離しつつ、道路や建物などはひとまとめにする
- 姿勢推定タスク: 人の頭や足、手などの関節位置を推定するタスク
- 人の異常行動を認識、人の動作を解析
- 関節の位置は、人の姿勢により大きく異なるため、信頼度マップによるアプローチが有効
- Convolutional Pose Machines: CNNを多段に組み合わせて徐々に各骨格の信頼度マップを高精度化する
-
Open Pose: 複数の人の骨格を同時に推定できるようにした手法
- 骨格間のつながり、どの頭の位置とどの肩の位置が同じ人物に属するかなどがわからない。
- Parts Affinity Fields: 骨格間の位置関係を考慮した処理の導入
- マルチタスク学習: 複数のタスクを一つのモデルで対応すること
- Faster R-CNN/YOLO: 物体クラスの識別と物体領域の位置検出を同時に行う
- Mask R-CNN: 物体検出だけでなく、セグメンテーションも同時に行うマルチタスクのモデル
-
音声処理と自然言語処理分野
- 時系列データ: 時間依存性のある情報で、ある時刻の状態が、それ以前の時刻の状態の影響を受けている
- データは時間軸に沿って入力すべき
- 時間情報を反映できるような仕組みが必要
- 音声データやテキストデータ、動画データなど
- 音声データ:
- A-D変換: 連続的に変化するアナログデータを離散的なデジタルデータに変換する処理
-
パルス符号変調(Pulse Code Modulation、PCM): 下記の3つのステップを経てデジタルデータへ変換
- 標本化: 連続的な音波を一定時間ごとに観測する
- 量子化: 観測された波の強さをあらかじめ決められた値に近似する
- 符号化: 量子化された値をビット列で表現する。
- 高速フーリエ変換(Fast Fourier Transform、FFT): 非常に短い時間ごとに周波数解析を行う
-
音は「高さ」「長さ」「強さ」「音色」という属性を持つ
- 「音色」が音の違いを認識する上で重要な属性
- 「音色」の違いは周波数スペクトルにおけるスペクトル包絡(スペクトル上の緩やかな変動)の違いと解釈することが多い
-
メル周波数ケプストラム係数(MFCC): スペクトル包絡を求めるためのデファクトスタンダードとなっている。
- 入力された音のスペクトラム包絡に相当する係数列が得られ、これが「音色」に関する特徴量となる
- フォルマント: スペクトラム包絡を求めるといくつかの周波数でピークを迎えること。
- フォルマント周波数: フォルマントのある周波数。入力された音韻が同じであればフォルマント周波数は近い値になる
-
隠れマルコフモデル(HMM): 音声認識を行うモデルとして長い間、標準的に用いられている。
- 音素(言語ごとに区別される音の最小単位)ごとに学習しておき、様々な単語の認識に対応する。
- 単語を認識する際にはあらかじめ定義された単語と音素列の対応辞書により音素列に変換し、音素列に従ってHMMを連結することでモデル化します。
- テキストデータ
- 単位は、文章、段落、文、単語、サブワード(単語と文字の中間的な表現)、文字など
-
n-gram: 単位となるものを複数個並べたもの
- 例: 単語を複数個並べて文字列として扱う
- uni-gram: n=1のn-gram
- bi-gram: n=2のn-gram
- tri-gram: n=3のn-gram
-
Bag-of-Words(BoW):文や文書を、そこに出現する単語の集合として表現する
- 単語がバラバラに保存されている。
- 出現順序の情報は失われている。局所的な出現順序が重要な意味を持つ場合がある。
- Bag-of-n-grams: n-gramとBoWを組みあせた手法
-
単語をコンピュータで扱うときには、文字列としてではなく数値に変換して扱うことが一般的
- ニューラルネットワークでは数値列(ベクトル)しか扱えないので、単語もベクトルとして入力する必要がある。
- ID化: 各単語に異なる整数値を順に割り当てること。
- ワンホットベクトル: このIDに相当するベクトルの次元の値だけが1で他が全て0となるように変換したもの
-
文書集合を行列として表現する
- 線形代数を用いて様々な分析が可能
- 情報が圧縮可能となる
- 文書間のコサイン類似度の計算が簡単になる
-
TF-IDF(Term Frequency-Inverse Document Frequency): 1文書内での出現回数が多く、出現する文書の数が少ない単語ほど大きな値となるため、TF-IDFの値の大きさがある程度その単語の重要度を表している。
- 特定の文書にのみ頻繁に出現するような特徴的な単語と、どの文書にでも出てくるような一般的な単語は異なる重みで計算する方が、文書間の類似度をもっともらしく求めることができる。
- TF: 1つの文書内での単語の出現割合(単語の頻度を文書内の全単語数で割ったもの)
- IDF: ある単語が出現する文書の割合(ある単語が出現する文書の数を全文書数で割ったもの)の逆数を取り、さらに対数を取ったものです。
-
局所表現:
- ワンホットベクトルは値が0か1しかなく離散的で、1をとる次元が1つしかないため情報が疎である。
- 次元数が単語の種類数と等しいため、非常に高次元であるという特徴がある。
- 単語同士の意味の近さを考慮することができない
-
分散表現/単語埋め込み: 局所表現を連続的で、情報が密であり、次元数の低いベクトルに変換する考え方
- ベクトル間の距離や位置関係から単語の意味を表現することができる。
- 代表的な手法として、word2vecがある。
-
word2vec: 「単語の意味は、その周辺の単語によって決まる」という分布仮説と呼ばれる言語学の主張をニューラルネットワークとして実現したもの
- 中間層の値は一種のベクトルとみなすことができる。単語の意味をベクトルとして計算可能にする
- 例: 王様 - 男性 + 女性 = 女王
- スキップグラム: ある単語を与えて周辺の単語を予測するモデル
- CBOW(Continuous Bag-of-Words): 周辺の単語を与えてある単語を予測するモデル
- トマス・ミコロフが提案
- fastText: word2vecの延長線上にあるライブラリ
- 単語埋め込みを学習する際に単語を構成する部分文字列の情報を含める
- 部分文字列の情報を併用することで訓練データには存在しない単語(Out Of Vocabulary,OOV)であっても単語埋め込みを計算可能に
- 活用する単語の語幹と語尾を分けて考慮することが可能に
- 学習に要する時間が短い
- ウィキペディアとコモンクロールを用いて訓練した世界中の157言語による訓練済みデータを提供している、
- ELMo(Embeddings from Language Models): 文脈を考慮した分散表現を得る手法
- 複数の意味を持つ単語であっても、その単語が出現した文の他の単語の情報から、その文において適切な意味を表した分散表現を得ることができる。
-
RNN(リカレントニューラルネットワーク):
- 言語モデル: 過去に入力された単語列から次に来る単語を予測する。音声処理でも自然言語処理でも使われる
- Pretrained Modelsの基礎となっている
- 過去の状態を反映するための隠れ層を持つ
- 入力層から隠れ層にネットワークの重みを伝って伝播するのは通常のニューラルネットワークと同じ
- 過去の隠れ層からの(現在の)隠れ層に対しても繋がり(重み)がある
- これまで与えられた過去の情報が、現在の新しくやってきた情報に対してどれくらい重みを持っているのかを学習する
- BackPropagation Through-Time(BTT): 時間軸に沿って誤差を反映する勾配降下法
- RNNからの出力を別のRNNへの入力とすることで、他のニューラルネットワーク構造と同様にRNNを何層も積み重ねることができる。
- RNNにデータを1つ入力すると出力が1つ得られます。時間軸に沿って入力したデータの数と得られる出力の数は一致する。
- Connectionist Temporal Classification(CTC):
- 入力された音声データの数と、認識すべき正解の音素の数は必ずしも一致しません。RNNへの入力と出力の数は一致することに矛盾が発生する。CTCはこれを解決する。
- 出力候補として音素に加えて空文字を追加されている。
- 連続して同じ音素を出力した場合には1度だけ出力したものと縮約する処理を行うことで、出力長と正解長の違いに対象する
- 勾配消失問題: 時間軸で展開するので、深いニューラルネットワークとなり、誤差を逆伝播する際、過去に遡るにつれて勾配が消えていってしまう。
- 入力重み衝突: 「今の時点では関係ないけれど、将来の時点では関係ある」という入力が与えられた際、重みは大きくすべきであり、同時に小さくすべきであるという矛盾を抱えること
- 出力重み衝突:
- Long Short-Term Memory(LSTM): LSTMブロックと呼ばれる機構を導入し、時系列情報をうまくネットワーク内に保持すること可能としている。
- 隠れ層の構造を変えることで勾配消失問題と入力重み衝突を解決する
-
LSTMブロック
- 誤差を内部にとどまらせるためのセルを持つ
- Constant Error Carousel(CEC): 誤差を内部にとどめ、勾配消失を防ぐためのもの
- 必要な情報を必要なタイミングで保持・消却させるためのゲートを持つ
- 入力ゲート: 入力重み衝突のためのゲート機構
- 出力ゲート: 出力重み衝突のためのゲート機構
- 忘却ゲート: 誤差が過剰にせるに停留するのを防ぐために、リセットの役割を果たすためのゲート機構
- 時系列データを扱うためのデファクトスタンダードになっているモデル
- セルやゲートそれぞれを最適化しなくてはならないため、計算量を多く要する。
-
Gated Recurrent Unit(GRU): LSTMを簡略したモデル
- リセットゲートと更新ゲートが入力ゲート、出力ゲート、忘却ゲートの代わりを果たす。
- Bidirectional RNN: RNNをさらに応用させたモデル。RNNを2つ組み合わせることで、未来から過去方向も含めて学習できるようにしたモデル。
- 時間情報の途中が欠けていてそれが何かを予測したい場合は、過去の情報だけでなく、過去と未来両方の情報を使って予測した方が効果的と言える。
- 自然言語処理においては、単語の品詞を推定したい場合などは、過去の単語だけでなく未来の単語の情報も用いる方がより高精度に行える。
- 通常のRNNは過去から未来への一方向でしか学習することができない。
-
sequence-to-sequence: 入力が時系列なら出力も時系列で予測したいという場合に対処したモデル
- 自然言語処理分野を中心に活発に研究されてきた。
- 代表例は機械翻訳。
- RNN エンコーダ-ディコーダ: 入力も出力も時系列ならば、それぞれにRNNを対応させればいいという考えに基づいた手法
- エンコーダ: 入力データを処理して符号化する。入力されたデータを処理するニューラルネットワークのこと。
- ディコーダ: エンコーダが符号化した入力情報を使ってデコーダが複合化する。出力を生成するニューラルネットワークのこと。
-
Image Captioning: 画像を入力としてその画像の説明文を生成する
- 画像を処理するためのエンコーダとしてCNNが利用されている。
- 自然言語文を出力するためにデコーダとしてRNNが利用されている。
-
Attention: 時間の重みをネットワークに組み込んだモデル
- RNN(LSTM/GRU/BiRNN)は、過去と未来のどの時刻の状態がどれだけ次の状態に影響するかまで直接求めていない。
- 過去の各時刻での隠れ層の状態を保持しておき、それぞれの重みを求め、出力を計算する際に隠れ層の状態の重み付き和を利用することで、時間の重みを考慮したモデルを実現。
- 出力から見た時の各入力の貢献度を表しているので、入出力の対応関係を可視化できる。
-
トランスフォーマー
- RNNの欠点
- 入力データを時間軸に沿って必ず1つずつ順番に読み込む必要があるため、並列計算ができず、処理速度が遅い
- 先頭に読み込んだデータの影響が時間の経過とともに次第に薄れてしまうため、入力データの長さが長くなると遠く離れた単語間の関係が捉えきれない
- 2017年に提案された
- Source-Target Attention / Endoder-Decoder Attention: 入力文と出力文の橋渡しに使われるAttention機構
- エンコーダとデコーダからRNNを排除
- Self-Attentionと呼ばれるネットワーク構造を採用している。このおかげで、遠い位置にある単語同士の関係もうまく捉えることができる
- ネットワーク全体がSelf-AttentionとSource-Target Attentionという2種類のAttention機構のみから構成されているため、並列計算がしやすく、RNNと比べて高速にモデルの学習が行える。
- Googleが提供している機械翻訳サービスにも部分的に取り入れられている。
- Self-Attention: 入力文内の単語間または出力文内の単語間の関連度を計算したもの
- 他の単語の分散表現とSelf-Attentionの値とを考慮して自分の分散表現を更新することで、その文における文脈を考慮したより適切な分散表現を得る。
- 入力文内の全ての単語間の関係を1ステップで直接計算することが可能。
- ある単語と他の単語との間の関係計算は、別のある単語とその他の単語との間の関係計算とは独立なため、全ての計算が並列に行え、高速に処理できます。
- 単語間の関係を直接計算できる一方で、語順の情報が失われてしまう。
- 位置エンコーディング: 単語の出現位置に固有の情報を入力に付与することで、ニューラルネットワークは間接的に単語の位置情報や単語間の位置関係を考慮することができる。
- デコーダは、Source-Target Attentionにより入力文の情報も利用する。
- エンコーダは、入力文のすべての単語を見ながら計算を行いますが、デコーダでは先頭から順に出力を生成するため、まだ出力されていない未来の情報は使えない。
- 翻訳文を生成するプロセスは並列化することができない。
-
GPT(Generative Pre-Training)
- OpenAIが開発した事前学習モデル
- 事前学習として行うのは大規模なコーパスを用いた言語モデルの学習
- トランスフォーマーのデコーダと似た構造を持ったネットワークを用いている。
- 事前学習と転移学習で全く同じモデルを用いている
- Self-Attentionを利用している
- 入力データの与え方を工夫するだけで、様々なタスクを解くことができる。
-
自然言語推論(Natural Language Inference, NLI): 与えられた2つの文書の内容に矛盾があるか、一方が他方を含意するかなどを判定するタスク。
- 含意関係認識(Recognizing Textual Entailment, RTE)とも呼ばれる
-
質問応答(question answering): 文章とこれに関する質問文が与えられ、適切な回答を選択肢の中から選ぶタスク。
- しばしば常識推論(commonsense resoning)が必要となる。
- 意味的類似度判定(semantic similarity): 2つの文が与えられ、これらが同じ意味であるか否かを判定するタスク。
-
文書分類(document classification): 与えられた文書がどのクラスに属すかを予測するタスク。評判分析タスクも文書分類の一種である。
- 評判分析(sentiment analysis): 与えられた文の極性(positive/negative/neutral)を判定
- General Language Understanding Evaluation(GLUE)ベンチマーク: 言語理解タスクをまとめたもの。データセットが公開されており、世界中の研究者がこのデータセットでの精度を競っている。
- パラメータ数は約1億
- GPT-2: GPTの後継
- 2019年2月に登場
- パラメータ数は約15億
- 機械翻訳などの言語生成タスクを行えるようになった。
- GPT-3: GPT-2の後継
- 2020年5月に登場
- パラメータ数は約1750億
- 言語生成タスクが非常に高精度に行えるようになった。
-
BERT(Bidirectional Encoder Representations from Transfomers):
- Googleが開発したモデル
- トランスフォーマーのエンコーダを利用している。
- 入力される文全体が見えている状態ですので、通常の言語モデルによる学習は行えない。
- 下記の2つのタスクにより事前学習を行う
- Masked Language Model(MLM):文内の単語のうちの一部をマスクして見えないようにした状態で入力し、このマスクされた単語を予測させるタスク
- Next Sentence Prediction(NSP):2つの文をつなげて入力し、2つの文が連続する文かどうかを判定するタスク
- 過去から現在、現在から過去の両方向の情報を使うことができる。
- トークン
- [SEP]: 文区切りを表す特別なトークン
- [CLS]: 先頭に配置される特別なトークン。最終状態を使ってNSPを行う。
- [MASK]: 文内の単語の一部がマスクされ、置き換えられる特別なトークン。最終状態を使ってMLMを行う。
- 各単語の最終状態を使って品詞タグ付けや固有表現解析をおこなったり、SQuADを解いたりできる。
- SQuAD(Stanford Question Answering Dataset): 回答の範囲を予測するタイプの質問応答タスク
- パラメータ数は約3億
- タスクの精度を落とさずにパラメータ数を削減する工夫をしたALBERTやDistilBERTといったモデルが提案された。
- Megatron-LM: 2019年9月にNVIDIAから登場。約83億のパラメータを持つモデル
- Turing-NLG: 2020年2月にMicrosofから登場。約170億のパラメータを持つモデル
- Vision Transformer(ViT): トランスフォーマーが画像処理分野に持ち込まれた結果、CNNを使わない新たな事前学習モデル。
-
深層強化学習: ディープラーニングと強化学習を組み合わせた手法
- Deep Q-Network(DQN): 深層強化学習で最も基本的な手法
- 2013年にDeepMingd社から発表された。
- Atari社が開発した家庭用ゲーム機Atari2600の多様多種なゲームを、人間並み、または人間以上のスコアで攻略できることを示した。
- 様々な拡張手法が登場した
-
デジタルゲームや、ロボット制御では、状態がゲームや実世界の画像として与えられる。
- 画像に数ピクセルというわずかな違いがあって別の状態として認識される。
- そのため、Q学習の特定の状態に対する行動価値を割り当てることが非現実的
- 画像をそのままディープニューラルネットワークの入力とし、行動候補の価値関数や方策を出力として学習するというアプローチをとる。
- 畳み込みニューラルネットワークを使うことで、入力の画像から価値推定に必要な情報をうまく処理できる。
-
経験再生: 環境を探索する過程で得た経験データをリプレイバッファと呼ばれる機構に保存し、あるタイミングで、これらの保存データをランダムに複数抜き出してディープニューラルネットワークの学習に使う手法
- 学習に使うデータの時間的偏りをなくし学習の安定化を図る
-
Rainbow: 下記の拡張手法をすべて組み合わせた手法。飛躍的に性能が向上
- ターゲットネットワーク: 現在学習しているネットワークと、学習の時間的差分がある過去のネットワークに教師のような役割をさせる手法
- 価値推定を安定させる。
- ダブルDQN: 経験再生やターゲットネットワークの使い方を工夫
- 優先度付き経験再生
- デュエリングネットワーク: ディープニューラルネットワークのアーキテクチャや出力を工夫
- カテゴリカルDQN
- ノイジーネットワーク
- 複数CPUやGPUを使って学習を行う分散型強化学習により学習の収束速度が飛躍的に上昇
- 内発的報酬と呼ばれる報酬の工夫により、極めて難易度の高いゲームにおいても人間以上のパフォーマンスを発揮する手法が発表されている。
- Agent57: 2020年前半にDeepMind社から発表された手法。Atari2600のベンチマークとなる57ゲーム全てで人間のスコアを越えるようになった。
- ゲームAI: 囲碁や将棋などのボードゲームをはじめとしたゲームの攻略を行う。
-
モンテカルロ木探索: 複数回のゲーム木の展開によるプレイアウトをもとに近似的に良い打ち手を決定する手法
- 2000年代前半に考案された
- 限定的な条件ながらもプロの棋士相手に勝利できる囲碁AIを実現
-
AlphaGo: モンテカルロ木探索に深層強化学習の手法を組み合わせた
- 2016年、DeepMind社が開発
- 世界的なトップ囲碁棋士であるイ・セドル九段に囲碁で勝利
- バリューネットワーク
- ポリシーネットワーク
- 人間の記譜データを使った教師あり学習を実施する。
- 複製したAlphaGoとの自己対戦で獲得された経験を使って深層強化学習を行う。
- AlphaGo Zero: 人間の棋譜を用いた教師あり学習は一切行わず、最初から自己対戦を行なって得たデータのみで深層強化学習を行います。
- 自己対戦のみで、AlphaGoを上回る強さに到達した。
- Alpha Zero: 完成形のゲームAI。囲碁のみならず、将棋やチェスなどの分野でも、既に人間のトッププレイヤーを超えていた多くのゲームAIを圧倒する性能を持つ
-
マルチエージェント強化学習: 対戦中に操作する味方のエージェントや相手のエージェントが複数存在し、これらのエージェントの協調的な関係や競争的な関係を考慮して強化学習を行う必要がある。複数エージェントによる強化学習
- OpenAI Five: 多人数対戦型ゲームDota2において、世界トップレベルのプレイヤーで構成されるチームを打倒できるゲームAIとして発表された
- 2018年、OpenAI
- 系列情報を処理するためにLSTMを使う
- PPOと呼ばれる強化学習のアルゴリズムを使用
- 学習に使った計算資源と学習時間が膨大。5万個以上のCPUと、1000個以上のGPU、10ヶ月に呼ぶ強化学習
- AlphaStar: スタークラフト2において、グランドマスターという称号を持つトッププレイヤーを打倒できるゲームAIとして発表
- 2019年、DeepMind
- ResNet,LSTM,Pointer Network,トランフォーマーなど、画像処理や自然言語処理の手法を多く取り入れたネットワークを使って学習、ゲームプレイを行います。
- 強化学習時は、ゲーム理論や、自己対戦の発展形の手法を使用。
-
深層強化学習をロボット制御に応用する際の課題
- 状態や行動を適切に設定する必要がある。
- 次元の呪い: 連続値のセンサや制御信号のデータを一定の幅で離散化するだけでは、状態や行動の数が指数的に増大するため学習が困難になる。
- 価値関数や方策を関数近似することで対応
- 深層強化学習においては、関数近似器としてディープニューラルネットワークを用いる
- 状態表現学習: 深層強化学習において、「状態」に関する特徴表現学習
- 連続値制御問題: 連続値の行動を直接出力する問題設定
- 報酬設計が難しい
- サンプル効率が低い割にデータ収集コストが高い
- 方策の安全性の担保が難しい
- ドメイン知識: 学習のためのデータの収集方法に関する工夫や、人間が環境やロボットに行わせたいタスクに関する事前知識
- オフラインデータ: 事前に何らかの方法によって集めたデータ
-
模倣学習: 人間が期待する動作をロボットに対して教示することで、ロボットが方策を学習する問題設定
- デモンストレーション: 教示するデータ。ロボットを直接手で動かしたり、リモコンやVRインターフェイスにより遠隔操作したりすることで生成される。
-
オフライン強化学習: 何らかの方法によって収集された固定のデータセットがエージェントに与えられることを想定
- 学習過程では、実際の環境との相互作用をすることなく、そのデータセットよりも高い性能を持つ方策を学習しようとする問題設定
- 学習過程での実環境での探索的な行動のリスクを軽減できる。
- 推薦システムや対話システムなどのWebサービスの最適化への応用も見込まれている
-
シミュレータ: 解きたいタスクの重要な側面を切り出して計算機上で再現する。
- sim2real: シミュレータで学習した方策を現実世界に転移して利用する
-
リアリティギャップ: 現実世界とシミュレータで再現された世界の間の差異
- 実世界に転移した際の性能を低下させる大きな原因
- ドメインランダマイゼーション: シミュレータの各種パラメータをランダムに設定した複数のシミュレータを用いて生成したデータから学習する
-
残差強化学習: 従来のロボット制御で用いられてきたような基本的な制御モジュールの出力と、実際にロボットがタスクを行う環境における最適な方策との差分を強化学習によって学習することを目指す。
- 強化学習の枠組みにある程度うまく動くことが事前にわかっている既存の制御手法を組み込むことができるため、サンプル効率や安全性の面で有効な手法であると考えられている。
- TossingBot: ロボットアームを使って様々な物体を把握し、指定された箱に投げ入れることができる
- 2019年、プリンストン大学やGoogle社などのチーム
- モデルフリー: 基本的には環境に関する知識を明示的に学習しない強化学習アルゴリズム
-
モデルベース: 環境に関する予測モデルを明示的に活用しながら方策の学習を行う強化学習アルゴリズム
- モデルフリーの手法に比べてサンプル効率が向上する
- 世界モデル: エージェントが、得られる情報を元に自身の周りの世界に関する予測モデルを学習して、方策の学習に活用する。
-
ディープラーニングモデルの解釈性問題: 予測の判断根拠を説明するのを苦手としている。
- 実社会への活用を考えると、「なぜ予測が当たっているのか」が分からないと、実運用するのを躊躇してしまうケースが多い
- Grad-CAM: モデルの予測判断根拠を示すために「画像のどこを見ているか」を可視化する。
- 画像認識系のタスク
- Grad-Gradient: 勾配情報を用いて可視化を行なっている
- 出力値への影響が大きいピクセルが重要だと判断して重みづけしている。
- 画像が低解像度になってしまうという問題点がある。
- Guided Grad-CAM: 入力値の勾配情報を使うことで、低解像度になってしまうことを回避する。
第7章: ディープラーニングの社会実装に向けて
- ビジネスにおいてAIを利活用する本質は、AIによって経営課題を解決し、利益を創出する点
- ビジネス的な成功と技術的な成功は車の両輪であり、一方だけを論点とすることはできない。
- 「5分が1分になること」ではなく、「5日が1分になること」に焦点を当てることが極めて重要
- 倫理は、「価値」に関する対話
-
AIシステム: AIを構成要素として含むシステム
- 利活用には、技術とビジネス、法と倫理を巻き込んだ総合的な見解によって行うことが必要不可欠
- 開発にあたって
- 解くべき課題は何か
- そもそもAIを利活用すべきなのか
- どの部分にAIを適用するのか
- 目的に基づいたデータをどのように取得するのか
- データの加工・分析・学習、実装とその評価をどのようにするのか
- 得た教訓を、運用の改善、システムの改修、次のAIシステム利活用へと循環させていくサイクルが重要
- 社会的にどのように受け止められるのかを考える必要がある。
-
AIプロジェクトを計画する
- AIに基づいたシステムは、すべての想定を織り込むことは原理的に不可能
- アジャイル的なプロジェクト・マネジメントを行わなければならない。
- CRISP-DM(CRoss-Industry Standard Process for Data Mining): データマイニングのための産業横断型標準プロセス
- ビジネスの理解
- データの理解
- データの準備
- モデリング
- 評価
- 展開
- MLOps: Machine LearningとOperationsを合成した造語。AIを本番環境で開発しながら運用するまでの概念
- AIを適用するべきかを検討する
-
そもそもAIを適用する必要があるのかを考察し、利活用した場合の利益計画を立てて投資判断する
- AIは目的ではなく手段の一つである
-
ビジネス・技術上、組み込むべきデータのフィードバックの機構をどのようなものにするかを検討する
- 「データのフィードバックの機構をビジネス上も技術上も組み込むことができるか」にかかっている。
- データが蓄積され、データのフィードバックが行われ、そのデータをAIが継続的に学習することで、推論精度が向上し、より少ないコストで大きな成果を生み出すことができる。
-
BPR(Business Process Re-enginieering): 現業務プロセスがアナログ空間にいる「人」が実行することを前提としたプロセスである場合、AIを利活用するプロセスに変更する必要がある。
- 現プロセスのコストとAI導入後のコストを算出
-
AIシステムの提供方法
- クラウド上でWebサービスとして提供する方式
- エッジデバイスにモデルをダウンロードし、常に最新の状態となるように更新を続ける方式
- データを確認する段階、モデルを試作する段階、運用に向けた開発をする段階にフェーズを細かく区切り、収集されたデータの中身や学習して得られたモデルの精度に応じて、柔軟に方針を修正できる体制が望ましい。
- 開発段階から多岐にわたるスキルを保有する様々なステークホルダーを巻き込んだ体制づくりが必要
- AIプロジェクトを推進するための人材
- AIに関する研究者
- システムを構築する技術者
-
マネージャー:ビジネス的な観点も踏まえて全体を把握・意思決定する
- 最終的なゴールに対して、どのようなモジュールでシステムを構成し、どの部分をルールベースで、どの部分をディープラーニングを利用して解くかを検討する。
-
デザイナー: UI/UXをデザインする
- AIのモデルが正しく更新されるように、UI設計する
-
データサイエンティスト: AIモデルを開発する
- 対象データの分析やモデルを構築する
-
経営者、法務、経営企画、広報官との連携も重要
- 法的・倫理的な検討が必要というと、面倒に感じるかもしれません。しかし、リスクを管理し味方を増やせる面もあります。
- プライバシー・バイ・デザイン(Pryvacy By Design, PbD): プライバシー侵害の予防を施行する考え方
- セキュリティ・バイ・デザイン: セキュリティに配慮した
- バリュー・バイ・デザイン: 価値全般に配慮した
-
データを集める
- AIシステムの開発には、特にデータの量と質が重要となる。
- オープンデータセット: 企業や研究者が公開しているデータセット
- ライセンスに注意が必要
-
例
- コンピュータビジョン分野: ImageNet,PascalVOC,MS,COCO
- 自然言語処理: WordNet,SQuAD,DBPedia
- 音声分野: LibriSpeech
- 自身でセンサを利用し環境の情報を計測し、データを収集する
- カメラ, マイクロフォン, 3Dセンサ
- データの利用条件: データの利用に制約がかかっている場合がある。
-
制限理由
- 著作権法
- 不正競争防止法
- 個人情報保護法
- 個別の契約
- その他の理由
-
金融分野における個人情報保護に関するガイドライン
- 機微情報(人種・犯罪の経歴・病歴などのデータ)について取得・利用・第三者提供のいずれも原則禁止とされている
- 上記は、個人情報保護法における要配慮個人情報の取り扱い原則よりも厳しい規律となっている
-
データを収集する際に気をつけること
- データの偏りをなくすこと
- データの網羅性
- データの質
-
データセットの偏りに注意する
- サンプリング・バイアス
- 現実世界の偏見をそのまま反映する
- データがそもそもデータベースに登録されていないために偏りが発生する
- 学習のための共有データセットが欧米主導で作られていること
- 外部との連携
-
連携やコラボレーションが広がっている理由は、下記の組織が必ずしも一致しないから。
- データを保有する組織
- データ分析やアルゴリズムの開発に優れた組織
- 分析結果やアルゴリズムを利用してビジネスを展開する組織
- オープンイノベーション: 組織外の知識や技術を積極的に採用する
-
共同開発の際に留意すべき特徴
- 学習・推論の結果、生成される学習済みモデルの性質・効果が契約締結時に不明瞭な場合が多いこと
- 学習済みモデルの性質・効果が学習用データセットによって左右されること
- ノウハウの重要性が高いこと
- 生成物について再利用の需要が存在すること
-
AI・データの利用に関する契約ガイドライン
- 2018年、経済産業省が策定
- 2019年、改訂版(ver.1.1)の公表
- 開発プロセス
- アセスメント: 一定量のデータを用いて学習済みモデルの生成可能性を検証する
- PoC: 学習用データセットを用いてユーザが希望する精度の学習済みモデルが生成できるか検証する
- 開発: 学習済みモデルを生成する
- 追加学習: ベンダが納品した学習済みモデルについて、追加の学習用データセットを使って学習する
- データ提供の3類型
- データ提供型
- データ創出型
- データ供用型
- データを加工する
- データの変換
- 集約
- 事前加工
-
アノテーション: 正解データを作成する作業
- アノテーションのバラツキ問題
- アノテーション定義の曖昧さ
- アノテーション実施者の感性
- 作業の専門性
- 認知容量を超える規模
- ケアレスミス
- 要件を正しく決め、作業者のアサインメントを調整し、レビュープロセス等の仕組みを作る
- マニュアルの作成: アノテーションの判断軸とそのサンプルの提示。作業制度の明確化
-
プライバシーの配慮
- 特徴量を抽出して判定キーをとした上で、生データは速やかに破棄する
- 匿名加工情報: 特定の個人を識別することができないように個人情報を加工して、特定性を低減する対応
- カメラ画像の活用
- カメラ画像利活用ガイドブック
- 事前告知・通知に関する参考事例
- ELSI(Ethical, Legal, and Social Implications): 倫理的・法的・社会的影響を一体のものとして検討する試み
- 開発・学習環境を準備する
- アルゴリズムを設計・調整する
- ビジネスにおける目標に対して精度とコストの折り合いをつけて進める
- 精度向上には、最新の論文を参考にしてモデルを改善する、データ量を増やす、一度の学習で回すループの数を増やす
- データの公平性を高めると精度が落ちる問題
- アルゴリズムを完全に開示すれば透明性は高まるが、プライバシーやセキュリティの観点から望ましいとは言えないといった問題
- ブラックボックス: どの変数がより多くシステムに使われていて重要であるかなどシステム全体の説明が非常に困難になる
- XAI(Explainable AI,説明可能AI): 結果の出力だけでなく、その出力に至った判断根拠やモデルの解釈も説明できる
- フィルターバブル現象: 過剰なパーソナライズによる、特定範囲への傾倒を助長すること
- FAT(Fairness, Accountability, and Transparency: 公平性・説明責任・透明性): プライバシーや公平性の問題について取り組む
- アセスメントフェーズ: データの収集及びモデルの検討
- 同様の問題を解いている事例や文献の有無を調査
- 運用での推論時間を視野に入れてモデルを選択
- コンセプト検証(PoC): データの加工とアルゴリズムの設計・調整
- AIモデルを作成
-
推論精度を仕様として表すことはには適しません。どのケースで認識でき、どのケースで認識できないかなどを保証することはできない
- AIでの認識と人による最終決定を組み合わせる
- 本番環境での実装と運用: 推論を行う環境、データを継続的に蓄積する環境、再学習するための環境
-
収集・生成したデータや学習済みモデルは、一定の条件を満たせば、知的財産として保護される。
- データ: 営業秘密として、不正競争防止法で守られる
- 学習用データセット: 著作権、営業秘密
- 学習: 特許権、著作権、営業秘密
- 学習済みモデル: 特許権、著作権は可能性あり。営業秘密
- 利用: 特許権、著作権、営業秘密
-
著作物: 思想・感情を創作的に表現したもの
- データベースの著作物: データの集合体が保護される可能性
-
営業秘密: 非公知性、有用性、秘密管理性の要件を満たせば保護される
- 公知なデータ(気温等)は、非公知性を満たさない場合もある
- 参加者の出入りが自由なコンソーシアムで共同管理しながら使う場合は、秘密管理性を満たさない
- 限定提供データ: コンソーシアムでのデータ共有なども、保護の対象となった。
- オープンデータに関する適用除外
-
利用者・データ保持者を保護する
- 個人情報を取り扱う際には、利用目的をできる限り特定しなければならない
- クライシス・マネジメント: 機器を最小限に抑えて拡大を防ぐ「火消し」と、速やかに平常かと再発防止を目指す「復旧」が主眼
- Partnership on AI(PAI): Amazon,Google,Facebook,IBM,MicrosoftなどアメリカのIT企業を中心に組織化された
- 人間中心のAI社会原則: 2019年、日本
-
想定外の事件や事故を起こさないためにも、技術の開発段階から以下のようなことを考えていくことが求められる。
- このAIシステムで恩恵や影響を受けるのは誰か
- 想定外のユーザーはいないか
- 判断や最適化を行うときの基準は何か
- 判断や最適化などを機械で行うことの正当性はどんな根拠に基づいているか
- AIシステムやサービスを、現在の文脈以外に悪用される危険性はあるか。それを防ぐ対策は取られているか
Appendix: 事例集: 産業への応用
-
製造業領域における応用事例
- 検品: 自動化できると人的にも時間的にも効果が大きい
- 「不良品」のデータがは一般的に少量しか手に入らない
-
モビリティ領域における応用事例
- 自動運転監視
- 自動運転サービスの運用をサポートする目的の事例もある
-
医療領域における応用事例
- 診断支援
- 創薬
- ゲノム解析
-
介護領域における応用事例
- 自立共生支援
- 予防ヘルスケア
-
インフラ領域における応用事例
- 保守点検
- 運用効率化
- 防災
-
サービス・小売・物流領域における応用事例
- 自動車関連サービス領域への適用
- 類似商品画像検索
- 不動産分野への適用
- 生活支援ロボットへの取り組み
- 問い合わせ応答
- 小売領域への適用
- 物流領域への適用
-
農林水産業領域における応用事例
- 農業
- 畜産業
- 漁業
-
その他領域における応用事例
- 金融・保健領域への適用
- 保険証券の自動分析
- 教育領域への適用
- インターネット関連サービス領域への適用
- 自然科学領域への適用/研究支援
- その他領域への適用
徹底攻略ディープラーニングG検定ジェネラリスト問題集 第2版 (徹底攻略シリーズ) を読む
-
シンギュラリティに対する有識者の意見
- レイ・カーツワイル: シンギュラリティは2045年に到来する
- ヒューゴ・デ・ガリス: シンギュラリティは21世紀の後半に来ると予測し、その時人工知能は人間の知能の1兆の1兆倍になると主張
- イーロン・マスク: シンギュラリティの到来に危機感を持ち、非営利のAI研究組織OpenAIを設立した
- オレン・エツィオーニ: 例えば100万年後、特異点を迎える可能性はあります。けれど賢いコンピュータが世界制覇するという終末論的構想は「馬鹿げている」としか言いようがありませんと主張
- ヴァーナー・ヴィンジ: シンギュラリティを、「機械が人間の役に立つふりをしなくなること」と定義した。
- スティーブン・ホーキング: [「AIの完成は人類の終焉を意味するかもしれない」と述べた。
-
活性化関数
- ステップ関数: ニューロンや単純パーセプトロンで用いられた。「u=0で微分できない」ためニューラルネットワークの学習で利用することができなかった。
- シグモイド関数(ロジスティックシグモイド関数):ニューラルネットワークの研究初期によく用いられたが、勾配消失問題が起きやすいなどの理由で現在はあまり用いられていない。
- ReLU(Rectified Linear Unit,レル): 勾配消失問題が起きにくく、形が簡単な関数であるため現在主流の活性化関数
- ソフトマックス関数: 出力を正規化して、確率として解釈する際に用いられる活性化関数。
-
特徴マップのサイズ計算
- 特徴マップの幅 = (入力画像の幅 + パディング * 2 - フィルタ幅) / 2 + 1
- 特徴マップの高さ = (入力画像の高さ + パディング * 2 - フィルタ高さ) / 2 + 1
-
自然言語処理の解析技術
- 形態素解析: テキストデータから文法・単語に基づき、言語で意味を持つ最小単位である形態素に分割し、その形態素の品詞を判定すること
- 構文解析: 形態素解析を基にして、その形態素間の構文的関係を解析すること
- 含意関係解析: 2つの文の間に含意関係が成立するかを判定すること
- 意味解析: 構文解析を基に、意味を持つまとまりを判定すること
- 文脈解析: 文単位で構造や意味を考えること
- 照応解析: 照応詞の指示対象・省略された名刺を推定・補完すること
- 談話解析: 文章中の文と文の関係や、話題の推移を明らかにする事
- LDA(Latent Dirichlet Allocation):文中の単語から、何のトピックかを推定する教師なし機械学習手法。
- ディリクレ分布が用いられる。
- 各単語が「隠れたあるトピック」から生成されるものとし、そのトピックを推定する。
- LSI(Latent Semantic Indexing): 文章ベクトルにおいて、複数の文書に共通に現れる単語を解析することによって、低い次元の潜在意味空間を構成する方法
- 特異値分解が用いられる。
-
AI技術に関するプラットフォーム
- Kaggle: データ解析のコンペティションやデータサイエンティストによるディスカッションが行われる。
- Google Scholar: 学術論文の検索エンジン
- Courera: 世界中の大学の講義を受講できるオンライン講座
- arXiv: 研究論文の公開・閲覧ができるWEBサイト
- OpenAI Gym: 自分で製作した強化学習用アルゴリズムを試験できるAIシミュレーションプラットフォーム
-
ディープラーニングのフレームワーク
- Chainer(チェイナー): Preferred Networksによってい開発されたフレームワーク。Define-by-Runという形式を採用している。
- 2015年6月
-
PyTorch(パイトーチ): Chainerから派生したフレームワーク
- 2016年8月登場
- Facebookによって開発・公開された。
- Tensorflow(テンソルフロー): 機械学習に関する計算を行うフレームワーク。Googleが開発した
- 2015年11月登場
-
Keras(ケラス): ディープラーニングに特化したTensorflowのラッパー
- Francois Chollet氏によって開発
- scikit-learn(サイキットラーン): 機械学習全般に対応するフレームワーク
- NumPy(ナムパイ): 線形代数の計算を行うフレームワーク
-
有名なチャットボットAI
- ELIZA(イライザ): MIT・ジョセフ・ワイゼンバウムが1964年から1966年に書き上げたルールベースで会話する。
- PARRY と ELIZA(DOCTOR)は何度か対話したことがある。最も有名な会話は ICCC 1972 でのもので、PARRY と ELIZA は ARPANET 上の別ノード上で動作し、通信によって会話を行った。
- PARRY: 精神科医Kenneth Colbyが1972年に書き上げたルールベースで会話する。
- Jabberwackyとは、イギリスのプログラマ ロロ・カーペンター(Rollo Carpenter) が開発したおしゃべりボットである。その目標は「面白く、楽しめる、ユーモラスな人間同士の自然な会話をシミュレートする」こととされている。人間とのやりとりに主眼を置いた人工知能開発の試みの1つである。1982年
- りんな: 日本マイクロソフトが開発した会話ボット、2015/7に登場。
- Tay: マイクロソフトが開発したおしゃべりボット、Twitter上で書き込むボットとして2016年3月に公開された
- イルダ: 韓国のスキャッターラボが開発したチャットボット、2020年12月に登場。
参考に読んだ本
-
AIってそういうことか!ビジネスの現場で使えるPFN式活用法
TODO
- ILSVRCの歴史について調べる。