G検定sakita

Comienza Ya. Es Gratis
ó regístrate con tu dirección de correo electrónico
G検定sakita por Mind Map: G検定sakita

1. Artificial Intelligence(人工知能)

1.1. ダートマス会議

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

1.1.2. ロジックセオリスト

1.1.2.1. ニューウェルとサイモン

1.1.3. エニアック

1.1.3.1. ペンシルバニア大学USA

1.1.4. ダートマス大学

1.2. イメージされている考え

1.2.1. 推論、認識、判断など知的な処理能力を持つ機械のこと

1.2.2. 周囲の状況によって行動を変えるエージェント

1.2.3. 定義は専門家によっても異なる

1.2.3.1. 「知識」や「知能」の解釈が人によって違うから

1.2.4. 近年目覚ましい活躍をしているのは「特化」型人工知能

1.3. レベル別のAIの動き

1.3.1. レベル1:シンプルな制御プログラム

1.3.2. レベル2:状況に応じてある程度の複雑な動きをする、るんば

1.3.3. レベル3:機械学習を取り入れた人工知能、予測変換とか

1.3.3.1. 多くのサンプルを使って、入力と出力の関係を学習している

1.3.3.2. パターン認識という古くからの研究をベースにしている

1.3.4. レベル4:DLを取り入れた人工知能、顔認証とか

1.3.4.1. どのような特徴が学習結果に影響するかが重要

1.3.4.2. 特徴を自動で学習するサービスや製品が当てはまる

1.4. AIぶーむ

1.4.1. 第一次(推論・探索の時代)

1.4.1.1. トイプロブレム:めちゃ簡単な問題

1.4.1.1.1. トイプロブレムは解けるけど…他は無理!

1.4.2. 第二次(知識の時代)

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

1.4.2.1.1. データベースに大量の専門知識を詰め込んだシステム

1.4.2.1.2. エキスパートのように振舞う

1.4.2.2. 第五世代コンピューター

1.4.2.2.1. 知識を蓄積・管理することが難しくて断念

1.4.2.3. ELIZA

1.4.2.3.1. A.L.I.C.EはELIZAの影響を受けて作られた

1.4.2.3.2. 人工無能

1.4.3. 第三次(機械学習と特徴表現学習の時代)

1.4.3.1. ビッグデータを用いる

1.4.3.1.1. 機械学習

1.4.3.1.2. DL(ディープラーニング)

1.4.3.2. シンギュラリティー

1.4.3.2.1. 人間を超える知能…?

1.5. AI効果

1.5.1. 人工知能の原理を分かってしまうと知能とは関係ないと結論付けるやつ

2. AI動向

2.1. 探索・推論

2.1.1. 迷路(探索木)

2.1.1.1. コンピュータで処理できるような形式に変換したもの

2.1.1.1.1. つまり場合分け

2.1.1.2. 検索する方法

2.1.1.2.1. 幅優先探索

2.1.1.2.2. 深さ優先探索

2.1.1.3. プランニング

2.1.1.3.1. ロボットの行動計画に使われる技術

2.1.1.3.2. STRIPS

2.1.1.3.3. SHRDLU

2.1.1.4. ボードゲーム

2.1.1.4.1. コストの概念を取り入れる

2.1.1.4.2. Mini-Max法

2.1.1.4.3. モンテカルロ法

2.1.1.4.4. AlphaGo(囲碁)が有名

2.1.2. 知識表現

2.1.2.1. 人工無脳

2.1.2.1.1. 知識なしでも知性があるように感じる人間心理の不思議

2.1.2.1.2. ELIZA

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

2.1.2.2.1. データベースに大量の専門知識を詰め込んだシステム

2.1.2.2.2. エキスパートのように振舞う

2.1.2.2.3. マイシン(MYCIN)

2.1.2.2.4. DENDRAL

2.1.2.2.5. アルゴリズム取引

2.1.2.2.6. Maxima

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

2.1.2.3. 意味ネットワーク

2.1.2.3.1. 「概念」をラベルの付いたノードで表す

2.1.2.3.2. 「is-a」の関係

2.1.2.3.3. 「part-of」の関係

2.1.2.3.4. ナレッジグラフ

2.1.2.4. メタデータ

2.1.2.4.1. データが持っているデータ自身についてのデータを指す。

2.1.2.5. オントロジー

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

2.1.2.5.2. Cycプロジェクト

2.1.2.5.3. 哲学用語で存在論という意味

2.1.2.5.4. 概念化の明示的な仕様

2.1.2.5.5. 目的は「知識の共有と活用」

2.1.2.6. オントロジーの構築

2.1.2.6.1. ヘビーウェイト・オントロジー

2.1.2.6.2. ライトウェイト・オントロジー

2.1.2.7. ワトソン

2.1.2.7.1. 質問の趣旨を理解し、大量の情報の中から適切な回答を選択する

2.1.2.7.2. 拡張知能 と言っている

2.1.3. 機械学習・深層学習

2.1.3.1. 機械学習

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

2.1.3.1.2. サンプル数が多ければGood

2.1.3.1.3. ビッグデータとともに注目を集める

2.1.3.1.4. レコメンデーションエンジン

2.1.3.1.5. スパムフィルター

2.1.3.2. 統計的自然言語処理

2.1.3.2.1. 複数の単語をひとまとまりにした単位を使う

2.1.3.2.2. 文法構造や意味構造を理解して単語単位で割り当てるのではない

2.1.3.3. 深層学習

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

2.1.3.3.2. ディープラーニング

3. AIの問題

3.1. トイ・プロブレム

3.1.1. 問題の本質を理解したり、練習をすることができる

3.1.2. 複数の研究者がアルゴリズムの性能を比較するため

3.2. フレーム問題

3.2.1. 「今しようとしていることに関係のある事柄だけを選び出すことが、実は非常に難しい」

3.2.2. 人工知能研究の最大の難問と言われる

3.2.3. 色々な状況に対応する人工知能はこの問題に直面する

3.2.4. その場ででとるべき行動に戸惑ってしまいトラブルを起こす

3.2.5. ジョン・マッカーシーとパトリック・ヘイズ

3.3. チューリングテスト

3.3.1. 人工知能ができたかどうかを判定する方法

3.3.2. 大好きアラン・チューリング

3.3.3. 別の場所にいる人間が格付けチェックで分からなければコンピュータに知能アリだ!

3.3.4. イライザ

3.3.4.1. チューリングテストに合格する会話テスト、ローブナーコンテストの先駆け

3.3.4.2. まだ合格者はいない

3.4. 強いAIと弱いAI

3.4.1. ジョン・サールによって発表された

3.4.2. 強いAI

3.4.2.1. 人間の心や脳の動きは情報処理

3.4.2.1.1. ジョン・サールは実現不可能と言っている

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

3.4.2.3. プログラムそれ自身が人間の認知の説明

3.4.2.4. 特化型人工知能

3.4.3. 弱いAI

3.4.3.1. 人間の心は必要なく、有用な道具

3.4.3.2. 便利な道具であればよい

3.4.3.3. 汎用型人工知能

3.4.4. 例

3.4.4.1. Ponanza

3.4.4.1.1. 将棋・2015,2016

3.4.4.2. 注目すべきデータの特徴を量的に表したもの

3.4.4.3. 囲碁・2016

3.4.4.4. AlphaGo

3.4.4.4.1. AlphaZeroに進化

3.4.4.5. Stockfish

3.4.4.5.1. チェス・TCEC

3.4.4.6. elmo

3.4.4.6.1. 将棋・2017

3.5. シンボルグラウンディング問題(記号接地問題)

3.5.1. スティーブン・ハルナッド

3.5.2. 記号とその対象がいかにして結びつくかという問題

3.5.3. シマウマを想像できない

3.6. 身体性

3.6.1. 知能が成立するためには肉体が不可欠

3.6.2. 体があるから物事を体験できるよね

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

3.7.1. 機械翻訳

3.7.1.1. 人工知能が始まって以来ずっと研究が続いている

3.7.1.2. 意味を理解していないことが難しい!!

3.7.1.3. 全ての知識を入れたいが

3.7.1.4. 知識を入れることが難しい=知識獲得のボトルネック

3.7.2. ルールベース機械翻訳という仕組みが一般的

3.7.3. 統計的機械翻訳が主流に

3.7.4. DLを使ったニューラル機械翻訳という技術が利用されるようになった

3.8. 特徴量設計

3.8.1. 「注目すべきデータの特徴」の選び方

3.8.2. 特徴量

3.8.2.1. 与えられた問題を解くために必要な処理に役立つ情報

3.8.3. 特徴表現学習

3.8.3.1. 機械学習自身に特徴量を機械学習に見つけさせる

3.8.4. DL

3.8.4.1. 「特徴表現学習」を行う機械学習アルゴリズムの一つ

3.8.4.2. ニュートラルネットワーク自身が複数ステップのコンピュータプログラムを学習できる

3.8.5. エンコーディング

3.8.5.1. one hot encoding

3.8.5.1.1. カテゴリに対応する変数を新たに作成する

3.9. シンギュラリティー

3.9.1. 技術的特異点

3.9.1.1. 人間の想像力を超越する

3.9.2. レイ・カーツワイル

3.9.2.1. 近未来に起こると言ってる

4. 機械学習の手法

4.1. 教師あり学習

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

4.1.2. 正解データが未知であるサンプルに対して、その値を予測するモデルを得る

4.1.3. 回帰問題

4.1.3.1. 連続値を予測する

4.1.3.2. 線形回帰

4.1.3.2.1. データのばらつきに近い直線を導く

4.1.3.2.2. 説明変数と目的変数の関係に直線や平面を当てはめる

4.1.3.2.3. 回帰係数が0を帰無仮説とした統計的仮説検定で判断される

4.1.3.2.4. ラッソ回帰

4.1.3.2.5. リッジ回帰

4.1.3.2.6. 多重共線性

4.1.4. 分類問題

4.1.4.1. 離散値を予測する

4.1.4.2. ロジスティク回帰

4.1.4.2.1. 2値分類

4.1.4.2.2. 対数オッズ log(p/p-1)

4.1.4.2.3. シグモイド関数

4.1.4.2.4. ソフトマックス関数

4.1.4.2.5. ロジットリンク変換

4.1.4.3. 線形判別モデル

4.1.4.3.1. 直線や平面を用いて、2クラスを分類するモデル

4.1.4.3.2. 識別境界が y = bx1 + bx2 + .....となる

4.1.4.4. ランダムフォレスト

4.1.4.4.1. 弱学習器に決定木を用いる手法

4.1.4.4.2. 決定木と違って、木を深くしても過学習しない

4.1.4.4.3. 特徴量をランダムに作る

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

4.1.4.4.5. それぞれの木でそれぞれ別の結果が出る

4.1.4.4.6. 多数決を用いて最終決定をする

4.1.4.4.7. アンサンブル学習

4.1.4.5. ブースティング

4.1.4.5.1. 一部のデータを取り出し、複数のモデルを学習させる

4.1.4.5.2. 弱学習器の数が多くなりすぎると過学習してしまう

4.1.4.5.3. 弱学習器は線形回帰でも決定木でも様々

4.1.4.5.4. 複数のモデルを順番に作成する

4.1.4.5.5. 勾配ブースティング

4.1.4.5.6. ランダムフォレストよりも制度が高い

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

4.1.4.6.1. 高度な数学的理論に支えられた手法

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

4.1.4.6.3. 距離を最大化する=マージン最大化

4.1.4.6.4. 扱うデータは高次元

4.1.4.6.5. データが直線で分類できない

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

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

4.1.4.7.2. 単純パーセプトロン

4.1.4.8. 自己回帰モデル

4.1.4.8.1. 対象となるデータは時系列データ

4.1.4.8.2. 時系列データ分析のことを単純に時系列分析

4.1.4.8.3. 複数の時はベクトル自己回帰モデル

4.2. 教師=出力データ

4.3. 最尤推定値

4.3.1. 尤度を微分して=0

4.4. 教師なし学習

4.4.1. データに共通する特徴的な構造や法則を見つけることを目的とする

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

4.4.2.1. 元のデータからグループ構造を見つけ出し、それぞれをまとめる

4.4.2.2. グループのことはクラスタという

4.4.2.3. ハードクラスタリング

4.4.2.3.1. 複数のクラスタをまたぐことがないため

4.4.3. k近傍法

4.4.3.1. データ間の距離により回帰や分類を行うモデル

4.4.3.2. データのうち距離が近いk個のデータの目的変数を多数化・平均する

4.4.3.2.1. スケールの大きい特徴量に左右されすぎないように適切な前処理が必要

4.4.3.2.2. スケール:特徴量が取りうる値や範囲、ばらつきのこと

4.4.3.3. kが大きくなるにつれ、シンプルな多数決になる

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

4.4.4.1. k-means法からさらにクラスタの階層構造を求めるまで行う

4.4.4.2. 距離が近いクラスタを一つにまとめる

4.4.4.3. デンドログラム

4.4.4.3.1. クラスタリングにおけるまとまりを樹形図で表したもの

4.4.5. 主成分分析(PCA)

4.4.5.1. データの特徴量間の関係性、送還を分析することでデータの構造を掴む

4.4.5.2. 特徴量が多いときに用いられる

4.4.5.2.1. 次元削減が主たる目的

4.4.5.2.2. 得られる少数の特徴量を主成分という

4.4.5.2.3. 学習にかかる時間を少なくしたり、可視化する

4.4.5.3. 主成分同士の相関は0になる

4.4.5.4. y=xが第一主成分

4.4.5.5. それ以外

4.4.5.5.1. 特異値分解(SVD)

4.4.5.5.2. 多次元尺度構成法(MDS)

4.4.5.5.3. t-SNE

4.4.6. オートエンコーダ

4.4.7. 強調フィルタリング

4.4.7.1. レコメンデーションに用いられる手法の一つ

4.4.7.1.1. レコメンド=推薦する

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

4.4.7.2.1. データがないと推薦を行えない

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

4.4.7.3.1. 商品側に何かしらの特徴量を付与し、特徴が似ている商品を推薦する

4.5. 強化学習

4.5.1. 行動を学習する仕組み

4.5.1.1. エージェントが環境上の状態において行動する

4.5.1.1.1. その結果、報酬を得る

4.5.2. 個々の行動における報酬(スコア)が最大になるように学習する

4.5.3. トピックモデル

4.5.3.1. クラスタリングを行う手法

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

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

4.5.3.3.1. 一つの文書にも複数の潜在トピックがある

4.5.3.3.2. 具体的な単語などのデータがそれぞれ生成される確率はトピックごとに異なる

4.5.3.4. 文書の集まりなどの与えられたデータから潜在的なトピックを推定することができる

4.5.4. 理論概要

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

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

4.5.4.3. 割引率と呼ばれるハイパーパラメータ

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

4.5.5.1. 活用

4.5.5.1.1. 現在知っている情報の中から報酬が最大となるような行動を選ぶ

4.5.5.2. 探索

4.5.5.2.1. 現在知っている情報以外の情報を獲得するために行動を選ぶ

4.5.5.3. 活用と探索のバランスをうまくとろうという考え方

4.5.5.4. ε - greedy方策

4.5.5.4.1. 方策

4.5.5.5. UCB方策

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

4.5.6.1. マルコフ性

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

4.5.6.2. 一般に状態遷移にマルコフ性を仮定したモデルのこと

4.5.7. 価値観数

4.5.7.1. 状態価値観数

4.5.7.2. 行動価値観数

4.5.7.3. Q値を最適化する

4.5.7.3.1. Q学習

4.5.7.3.2. SARSA

4.5.8. 方策勾配法

4.5.8.1. 直接最適な方策を見つけ出そうとする手法

4.5.8.2. 行動の選択肢が大量にある場合に使う

4.5.8.3. REINFORCE

4.5.8.4. Actor-Critic

4.5.8.4.1. 価値観数ベースと方策勾配ベースの考え方を組み合わせた

4.5.8.4.2. 応用したA3Cがある

4.5.9. 深層強化学習

4.5.9.1. 近年、深層学習における隠れ層の出力を縮約表現とみなす 注目されている

4.6. モデルの評価

4.6.1. モデルの評価も未知のデータに対しての予測能力を見ることが大切

4.6.2. 汎化性能

4.6.2.1. 学習データだけでなく、未知のデータに対しても正しく予測できる能力のこと

4.6.2.1.1. 交差検証法が利用される

4.6.3. 手元にあるデータから擬似的に未知のデータを作る

4.6.3.1. データを分割

4.6.3.1.1. 交差検証という

4.6.3.1.2. 学習用のデータを訓練データ

4.6.3.1.3. 評価用のデータをテストデータ

4.6.4. 特徴量エンジニアリング

4.6.4.1. 取得済みのデータを加工して抽出すること

4.6.4.1.1. 画質が悪いから別のカメラから取得したデータを特徴量とした、など

4.6.5. 評価指標

4.6.5.1. 混同行列

4.6.5.1.1. 組み合わせの表

4.6.5.2. 正解率

4.6.5.2.1. どれだけ予測が当たっているか

4.6.5.3. 適合率

4.6.5.3.1. 予測の正の中で、実際に正であった者の割合

4.6.5.4. 再現率

4.6.5.4.1. 実際に正であるものの中で、正だと予測できた割合

4.6.5.5. F価

4.6.5.5.1. 適合率と再現率の調和平均

4.6.5.5.2. 適合率や再現率のみで判断すると予測が偏っているときがあるため参考にする

4.6.5.6. 目的に沿った指標を選択することが重要

4.6.5.7. テストデータを使って評価。比較する

4.6.5.7.1. オーバーフッティング

4.6.5.7.2. アンダーフッティング

4.6.5.7.3. 正則化

4.6.5.8. MSE

4.6.5.8.1. 平均二乗誤差

4.6.5.9. RMSE

4.6.5.9.1. 二乗平均平方根誤差

4.6.5.10. RMSLE

4.6.5.10.1. 対数化した目的変数・予測値のRMSEを算出している

4.6.5.11. ROC曲線

4.6.5.11.1. 正解率などとは異なった観点でモデルの性能を評価する

4.6.5.11.2. AUCとも言う

4.6.5.11.3. AUCの面積が1になればGood

4.6.5.12. モデルの解釈

4.6.5.12.1. 学習によって得られたモデルがどのように予測しているのかも考えるべき

4.6.5.12.2. 局所的に説明性を持たせよう

4.6.5.13. オッカムの剃刀

4.6.5.13.1. ある事柄を説明するためには、必要以上に多くを仮定するべきでない

4.6.5.14. 決定係数

4.6.5.14.1. 回帰問題によって求められた予測値などが、正解ラベルとどの程度一致しているかを表す指標

5. DLの概要

5.1. DLの基本

5.1.1. 多層パーセプトロン

5.1.1.1. ニュートラルネットーワークの基本形

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

5.1.1.1.2. 入力と出力の関係性が、隠れ層の中に(重みとして)表現されているだけ

5.1.1.1.3. 隠れ層

5.1.1.2. 単純パーセプトロン

5.1.1.2.1. 入力をもとに出力を行う関数

5.1.2. DLとは

5.1.2.1. 隠れ層を増やしたニュートラルネットワーク

5.1.2.2. 層が「深い」

5.1.2.3. DLはニュートラルネットワークを応用した手法

5.1.2.4. 人工知能の研究分野を指す

5.1.2.4.1. モデルは「ディープニュートラルネットワーク」

5.1.3. 既存のニュートラルネットワークにおける問題

5.1.3.1. バックプロパゲーション

5.1.3.1.1. 誤差が最後まで正しく反映されないかも

5.1.3.1.2. 勾配消失問題

5.2. DLのアプローチ

5.2.1. 事前学習におけるアプローチ

5.2.1.1. ジェフリー・ヒントンが解決

5.2.1.1.1. トロント大学

5.2.1.1.2. オートエンコーダ

5.2.1.1.3. 事故符号化器

5.2.1.2. オートエンコーダ

5.2.1.2.1. 可視層と隠れ層の2層からなるネットワーク

5.2.1.2.2. 与えられる入力じは、可視層(入力)→隠れ層→可視層(出力)の順に伝播し、出力される

5.2.1.2.3. 「入力と出力が同じになるようなネットワーク」

5.2.1.2.4. 隠れ層には「入力の情報が圧縮だれたもの」が反映される

5.2.1.2.5. 入力層(可視層)の次元よりも、隠れ層の次元を小さくしておくことに注意する

5.2.1.2.6. コンピュータ全般の作業を処理する役割を担う

5.2.1.3. 積層オートエンコーダ

5.2.1.3.1. 「ディープ」=積み重ねる

5.2.1.3.2. 又の名をディープオートエンコーダ

5.2.1.3.3. 事前学習とファインチューニングの工程で構成される

5.2.1.3.4. 分類問題を解くときは、シグモイド関数またはsoftmax関数

5.2.1.4. ファインチューニング

5.2.1.4.1. オートエンコーダの出力=「次の層への入力」

5.2.1.4.2. 積層オートエンコーダの最後の仕上げ

5.2.1.5. 深層信念ネットワーク

5.2.1.5.1. 教師なし学習に制限付きボルツマンマシンという手法を用いる

5.2.2. 事前学習なしのアプローチ

5.2.2.1. 事前学習は計算コストが非常に高くつく

5.3. DLを実装するには

5.3.1. CPUとGPU

5.3.1.1. CPUとGPU

5.3.1.1.1. 活性化関数を工夫することで事前学習をなくすようになった

5.3.1.1.2. ハードウェアの進歩

5.3.1.1.3. CPU

5.3.1.1.4. GPU

5.3.1.2. GPGPU

5.3.1.2.1. 画像以外の目的での使用に最適化されたGPU

5.3.1.2.2. NVIDIA社

5.3.1.2.3. Google社

5.3.2. DLのデータ量

5.3.2.1. 「学習」= 「モデルが持つパラメータの最適化」

5.3.2.1.1. 深いほど、最適化するべきものが増える

5.3.2.2. バーニーおじさんのルール

5.3.2.2.1. 「モデルのパラメータ数の10倍のデータ数が必要」

5.4. 活性化関数

5.4.1. シグモイド関数の微分が勾配消失の最大の原因

5.4.1.1. 任氏の実数を(非線形に)変換できる関数ならば、特にどんな関数だろうとかまわない

5.4.1.1.1. tanh関数

5.4.1.1.2. ReLU関数

5.4.1.1.3. Leaky ReLU関数

5.4.1.2. 二値分類はシグモイド、三種類以上でソフトマックス関数

5.4.1.3. 勾配消失問題

5.4.1.3.1. 関数の微分値をかけると、誤差がだんだんと0になってしまうこと

5.5. 学習率の最適化

5.5.1. 機械学習の手法が目指すもの=「モデルの予測値と、実際の値との誤差をなくすこと」

5.5.1.1. 誤差=「誤差関数」とする

5.5.1.1.1. 関数の最小化が問題

5.5.2. 勾配降下法

5.5.2.1. アルゴリズムを用いて、最適解を探索する手法の一つ

5.5.2.2. 「勾配に沿って降りていくことで解を探索する」

5.5.2.2.1. 勾配=「微分値」

5.5.2.3. 繰り返し計算をして目的の点を得る

5.5.2.3.1. 繰り返しの計算をイテレーションという

5.5.2.3.2. α=「学習率」というハイパーパラメータ

5.5.2.4. 各パラメータ(重み)に対して、勾配降下法を適用することで最適値を求める

5.5.2.4.1. 「学習」とは勾配降下法を用いてイテレーションすること

5.5.2.5. SGD

5.5.2.5.1. 確率的勾配降下法

5.5.2.6. 最急降下法

5.5.2.6.1. バッチ学習の一つ

5.5.3. 勾配降下法の問題と改善

5.5.3.1. 途中で0になると止まってしまう

5.5.3.1.1. これを「見せかけの最適解」という

5.5.3.2. 見せかけの最適解を見抜くことができない

5.5.3.3. 防ぐ方法

5.5.3.3.1. 学習率の値を大きく設定する

5.5.3.3.2. どの方向に沿って勾配を進んでいるときに学習率を大きく(あるいは小さく)すべきかを考える

5.5.3.3.3. モーメンタム

5.5.3.3.4. 他の効率的な手法

5.6. さらなるテクニック

5.6.1. ドロップアウト

5.6.1.1. 過学習を防ぐ手法

5.6.1.1.1. 過学習=訓練データに引っ張られすぎたやつ

5.6.1.2. ランダムにニューロンを「ドロップアウト(除外)」させるもの

5.6.1.2.1. アンサンブル学習を行っていることになる

5.6.1.2.2. 毎回形の異なるネットワークで学習することになる

5.6.2. 早期終了

5.6.2.1. 学習を進めるごとに誤差が大きくなるなら、途中で止めればいいんじゃね

5.6.2.2. 誤差の上がり始め=過学習の始まり

5.6.2.2.1. 上がり始めた時点で学習を止める手法

5.6.2.3. ノーフリーランチ定理 = 「あらゆる問題で性能の良い汎用最適化戦略は理論上不可能」に反している

5.6.2.4. どんな形のネットワークでも容易に適応できる

5.6.2.5. 最近では上がった後にまた下がるという「二重降下現象」が確認されている

5.6.3. データの正規化・重みの初期化

5.6.3.1. 途中ではなく「始め」を調整すればいいのでは?

5.6.3.2. 正規化

5.6.3.2.1. データ全体を調整する処理のこと

5.6.3.2.2. 各特徴量を 0 ~ 1 の範囲に変換する処理

5.6.3.3. 標準化

5.6.3.3.1. 各特徴量の平均を 0 、分散を 1 にする処理のこと

5.6.3.3.2. 標準化によって特徴量が標準正規分布に変換される

5.6.3.3.3. 各特徴量の分散をそろえることで、それぞれの特徴量の動きに対する感度を平等にみることができる

5.6.3.4. 白色化

5.6.3.4.1. 各特徴量を無相関化したうえで標準化すること

5.6.3.4.2. 計算コストが当然高い

5.6.3.5. 重みの初期値を工夫する

5.6.3.5.1. 勾配消失問題やネットワークの表現力がなくなるのを防ぐ

5.6.3.5.2. データの分布が崩れにくい初期値を考えたい

5.6.4. バッチ正規化

5.6.4.1. 各層に伝わってきたデータを、その層でまた正規化する手法

5.6.4.1.1. 活性化関数をかける前に伝播してきたデータを正規化する

5.6.4.1.2. どのようにデータを変形するかはネットワークが学習する

5.6.4.1.3. 過学習しなくなる利点がある

6. DLの手法

6.1. 畳み込みニュートラルネットワーク

6.1.1. 画像データの扱い

6.1.1.1. 画像認識は、DLの中でも一番研究が活発な分野

6.1.1.2. 画像データは赤色、緑色、青色の3つの色情報を持つ

6.1.1.2.1. 縦横の位置関係が重要な意味を持つ

6.1.1.3. RGB画像は縦と横だけでなく奥行きを持つ3次元

6.1.1.3.1. 奥行きをチャンネルと呼ぶ

6.1.1.4. この画像データに適した構造

6.1.1.5. 画像データに移っている物体の位置情報を維持する

6.1.2. CNNの基本形

6.1.2.1. 私たち人間が持つ視覚野の神経細胞の2つの動きを模してみようという発想から生まれる

6.1.2.2. ネオコグニトロン

6.1.2.2.1. 単純型細胞

6.1.2.2.2. 複雑型細胞

6.1.2.2.3. 二つの細胞の働きを初めて組み込んだモデル

6.1.2.3. LeNet

6.1.2.3.1. ヤン・ルカンによって考えられた

6.1.2.3.2. 有名なCNNのモデル

6.1.2.3.3. 畳み込み層とプーリング層(またはサブサンプリング層)

6.1.2.4. バックプロパゲーションを学習に用いる

6.1.2.4.1. 通常のニュートラルネットワークと同じ

6.1.3. 畳み込み層

6.1.3.1. フィルタ(またはカーネル)を用いて画像から特徴を抽出する操作のこと

6.1.3.1.1. フィルタは、画像よりもサイズはだいぶ小さい

6.1.3.2. 画像とフィルタの値をそれぞれかけ合わせて総和を取っていく処理

6.1.3.3. 人間でいう局所受容野に対応する

6.1.3.3.1. 移動普遍性の獲得に貢献する

6.1.3.3.2. 畳み込み層によって、そういった「位置のズレ」に強いモデルができる

6.1.3.4. カーネルの中の数値が変わると、特徴マップも異なる

6.1.4. プーリング層

6.1.4.1. プーリング処理

6.1.4.1.1. 画像サイズを決められたルールに従って、ちいさくする

6.1.4.1.2. 画像のズレに対する頑健性を持つことができる

6.1.4.1.3. 最大値プーリング

6.1.4.1.4. 平均値プーリング

6.1.4.1.5. 学習によって最適化されるパラメータが存在しない

6.1.5. 全結合層

6.1.5.1. 畳み込み層やプーリング層は2次元の結果を出力する

6.1.5.2. 似ている度を1次元の数値として出したい

6.1.5.3. 特徴マップを1列(フラット)に並べる処理

6.1.5.4. Global Average Pooling

6.1.5.4.1. 全結合層ではなく、特徴マップの平均値を1つのユニットの値にする

6.1.5.5. 多層パーセプトロンに用いられている層と同じ構造

6.1.6. データ拡張

6.1.6.1. 明るさ、角度から、もの見え方は変わってしまう

6.1.6.2. 網羅したデータを用意する必要がある

6.1.6.2.1. 不可能

6.1.6.3. 手元から擬似的に別の画像を生成する

6.1.6.3.1. データの「水増し」

6.1.6.3.2. ランダムにいくつかの処理を施して新しい画像を作る

6.1.6.3.3. Cutout

6.1.6.3.4. Random Erasing

6.1.6.3.5. Mixup

6.1.6.3.6. CutMix

6.1.7. CNNの発展形

6.1.7.1. AlexNet

6.1.7.1.1. ILSVRC、画像認識の精度を競うコンペ

6.1.7.1.2. 畳み込み層とプーリング層を繰り返し積層して深くしていく

6.1.7.2. VCG

6.1.7.2.1. 畳み込みとプーリングの繰り返しをさらに増やしたもの

6.1.7.3. GoogleNet

6.1.7.3.1. Inceptionモジュール

6.1.7.4. 「超」深層になると識別精度が落ちるという問題が発生

6.1.7.4.1. バックプロパゲーションがうまくいってないため

6.1.7.4.2. Skip connection

6.1.7.5. Mobile Net

6.1.7.5.1. 層が深くなるとメモリ量も増えるので、パラメータ数を削減するモデル

6.1.7.5.2. Depthwise Separable Convolution

6.1.7.6. Neural Architecture Search(NAS)

6.1.7.6.1. CNNのネットワーク構造は、総数だけでなくフィルタのサイズなど決めることがいっぱい

6.1.7.6.2. リカレントニュートラルネットワークと深層強化学習を用いてネットワーク構造を探索する

6.1.7.7. EffecientNet

6.1.7.7.1. 高精度なだけでなく、転移学習に有用なモデルとして様々なコンペに活用されている

6.1.8. 転移学習とファインチューニング

6.1.8.1. 今や学習に必要な計算量も莫大になっている

6.1.8.2. 最適なネットワークの重みが需要

6.1.8.3. 転移学習

6.1.8.3.1. すでに学習済みのネットワークに付け足して学習する

6.1.8.4. ファインチューニング

6.1.8.4.1. 付け足したうえでネットワーク全体で学習する

6.1.8.5. どちらも出力層の近くをいじる

6.1.8.5.1. しかし、付け足したデータがだめだと逆に精度が落ちる

6.2. 深層生成モデル

6.2.1. 画像のデータがどのような分布になっているかを推測をして、その分布に基づいてデータを生成する

6.2.2. 複雑なデータを生成するのは困難

6.2.2.1. 画像の生成タスクでは、画像が持つ潜在空間を学習し、それをベクトルとして表現する

6.2.3. 変分オートエンコーダ(VAE)

6.2.3.1. 入力データを圧縮表現するのではない

6.2.3.2. 統計分布に変換する

6.2.3.2.1. 平均と分散で表現する

6.2.3.2.2. 入力データはこの統計分布のある1つの点になる

6.2.3.3. 潜在変数に変換する

6.2.4. 敵対的生成ネットワーク(GAN)

6.2.4.1. ジェネレータ

6.2.4.1.1. ランダムなベクトルを入力として画像を生成して出力する

6.2.4.2. ディスクリミネータ

6.2.4.2.1. 画像を入力として本物か偽物かを予測する

6.2.4.3. ディスクリミネータの結果はジェネレータにフィードバックする

6.2.4.4. 重要なこと

6.2.4.4.1. 偽物をあえて作って、偽物だと見抜けること

6.2.4.5. 二種類のネットワークを交互に競い合わせることで本物に近い画像を作る

6.2.5. DCGAN

6.2.5.1. GANが畳み込みニュートラルネットワークを採用したもの

6.2.5.1.1. 高解像度の画像生成が可能になる

6.2.6. Pix2Pix

6.2.6.1. ベクトルの代わりに画像データを入力し、別の画像データに変換する処理

6.2.6.2. 元の画像と比較して予測する

6.2.7. Cycle GAN

6.2.7.1. 画像のペアが必要ない

6.2.7.2. 元の画像と再度変換した画像が一致するように学習する

6.3. 画像認識分野での応用

6.3.1. 物体識別タスク

6.3.1.1. 物体クラスの名称を出力するタスク

6.3.1.2. 識別対象としている物体クラス全てに対する革新度を出力する

6.3.1.3. 革新度が最も高いクラス=識別結果

6.3.2. EfficientNet

6.3.2.1. モデルの深さ、広さ、入力画像の大きさをバランスよく調整しているのが特徴

6.3.2.2. Google社から出た、パラメータ数が大幅に少ないモデル

6.3.3. データセットを作成する際、正解ラベルが疑わしい例が含まれる可能性がある

6.3.4. ILSVRC

6.3.4.1. AlexNetが圧倒

6.3.4.2. GoogleNet

6.3.4.2.1. Inceptionモジュールというカーネルサイズの異なる複数の畳み込み層から 構成される小さなネットワークを積層したもの

6.3.4.2.2. 学習するときに誤差を逆伝播する補助的な機構を搭載している

6.3.4.3. VGG

6.3.4.3.1. 畳み込み層のカーネルサイズを 3 × 3 に統一

6.3.4.3.2. プーリングを行った次の畳み込み層からカーネル数を2倍にする

6.3.4.4. ResNet

6.3.4.4.1. Skip connectionを導入する

6.3.4.4.2. 人の識別精度を超えることができている

6.3.4.4.3. Wide ResNet

6.3.4.4.4. DenseNet

6.3.4.5. SENet

6.3.4.5.1. 畳み込み層が出力した特徴マップに重み付けする機構を導入した

6.3.5. 物体検出タスク

6.3.5.1. 入力画像に写る物体クラスの識別とその物体の位置を特定するタスク

6.3.5.1.1. 物体の位置は四角形としてその左上の座標と右下の座標を出力する

6.3.5.1.2. 顔検出とか

6.3.5.2. 2段階モデル

6.3.5.2.1. 大まかな物体の位置を特定した後、そのクラスを識別する

6.3.5.2.2. R-CNN

6.3.5.2.3. FPN

6.3.5.3. 1段階モデル

6.3.5.3.1. 処理を単純にすることで高速な処理を実現したい

6.3.5.3.2. YOLO

6.3.5.3.3. SSD

6.3.6. セグメンテーションタスク

6.3.6.1. 画像の画素ごとに識別を行うタスク

6.3.6.2. セマンティックセグメンテーション

6.3.6.2.1. 画像全体を対象にする

6.3.6.2.2. Dilated convolution

6.3.6.2.3. SegNet

6.3.6.2.4. U-Net

6.3.6.2.5. 評価指標

6.3.6.3. インスタンスセグメンテーション

6.3.6.3.1. 物体検出した領域を対象とする

6.3.6.4. パノプティックセグメンテーション

6.3.6.4.1. 個々の物体をそれぞれ分離しつつ、道路や建物をひとまとめにする

6.3.6.5. FCN

6.3.6.5.1. CNNをセマンティックセグメンテーションタスクに利用した方法

6.3.6.5.2. 畳み込み層だけで構成するモデルを採用している

6.3.6.5.3. 最後の特徴マップは入力画像に対して小さい

6.3.6.6. PSPNet

6.3.6.6.1. Pyramid Pooling Module

6.3.7. 姿勢推定タスク

6.3.7.1. 人の頭や足、手などの間接位置を推定するタスク

6.3.7.1.1. 信頼度マップによるアプローチが有効

6.3.7.1.2. 人の間接の位置は姿勢よって大きく異なるから

6.3.7.2. Open Pose

6.3.7.2.1. 複数の人の骨格を同時に推定できるようにした手法

6.3.7.2.2. Parts Affinity Fields

6.3.8. マルチタスク学習

6.3.8.1. 複数のタスクを一つのモデルで学習すること

6.3.8.2. Mask R-CNN

6.3.8.2.1. 物体検出だけでなくセグメンテーションも行うマルチタスクのモデル

6.4. 音声処理と自然言語処理分野

6.4.1. データの扱い方

6.4.1.1. 時系列データの扱い

6.4.1.1.1. データは時間軸に沿って入力されるべき

6.4.1.1.2. 時間情報も反映できるような仕組みが必要

6.4.1.2. 音声データの扱い

6.4.1.2.1. A-D変換

6.4.1.2.2. 高速フーリエ変換(FFT)

6.4.1.3. テキストデータの扱い

6.4.1.3.1. n-gram

6.4.1.3.2. Bag-of-Words(BoW)

6.4.1.3.3. 文字列も数列にしないといけない

6.4.1.3.4. 局所表現

6.4.1.3.5. 分散表現

6.4.1.3.6. word2vec

6.4.1.3.7. 形態素解析

6.4.2. リカレントニュートラルネットワーク(RNN)

6.4.2.1. 言語モデル

6.4.2.1.1. RNNを使ってできる代表例

6.4.2.1.2. 過去に入力された単語列から次に来る単語を予測する

6.4.2.1.3. Pretrained Models の基礎にもなっている

6.4.2.2. RNNの基本形

6.4.2.2.1. 過去の隠れ層が追加された

6.4.2.2.2. 過去の隠れ層から現在の隠れ層に対してもつながり(重み)があること

6.4.2.2.3. Backpropagation Through-Time (BPTT)

6.4.2.2.4. 過去の入力が持つ情報を保持しつつ、入力された順番の情報を出力できる

6.4.2.3. 音声データにも使われる

6.4.2.3.1. Connectionist Temporal Classification (CTC)

6.4.2.4. 勾配消失問題

6.4.2.4.1. RNNでも発生する

6.4.2.4.2. 入力重み衝突

6.4.2.4.3. LSTM

6.4.2.5. Bidirectional RNN

6.4.2.5.1. RNNを二つ組み合わせることで未来方向から過去方向も含めて学習できるようにしたモデル

6.4.2.6. エンコーダ、ディコーダ

6.4.2.6.1. 入力が時系列なら、出力も時系列にしたい

6.4.2.6.2. 固定長のベクトルを入出力する

6.4.2.6.3. sequence-to-sequence

6.4.2.7. Attention

6.4.2.7.1. 「時間の重み」をネットワークに組み込んだもの

6.4.2.7.2. 過去の入力のどの時点がどれくらいの影響を持っているかを求める

6.4.2.8. WaveNet

6.4.2.8.1. CNNを使った畳み込み処理

6.4.3. トランスフォーマー

6.4.3.1. RNNは並列計算ができず、処理速度が遅い

6.4.3.2. RNNは遠く離れた単語間の関係がとらえきれない

6.4.3.3. RNNの問題を解決したネットワーク構造として提案されたもの

6.4.3.4. トランスフォーマーの基本形

6.4.3.4.1. いままでの機械翻訳モデルに使われていたAttention構造

6.4.3.4.2. Self-Attention

6.4.3.5. Self-Attention

6.4.3.5.1. 入力文内の単語間または出力文内の単語間の関連度を計算したもの

6.4.3.5.2. 文脈を考慮したより適切な分散表現を得ることができる

6.4.3.5.3. 入力文内すべての単語間の関係を1ステップで直接計算することができる

6.4.3.5.4. 全ての計算が並列で行えて、高速に処理できる

6.4.3.5.5. 一方で、語順の情報が失われてしまう

6.4.3.6. 仕組み上の違い

6.4.3.6.1. デコーダはSource-Target Attention により入力文の情報も利用する

6.4.3.6.2. エンコーダでは入力文全ての単語を見ながら計算を行うため、未来の情報は使えない

6.4.4. 事前学習モデル

6.4.4.1. GPT

6.4.4.1.1. OpenAIが開発した事前学習モデル

6.4.4.1.2. 大規模なコーパスを用いた言語モデルの学習を行う

6.4.4.1.3. トランスフォーマーのデコーダと似た構造を持ったネットワークを用いる

6.4.4.1.4. エンコーダがないので Source - Target Attention はない

6.4.4.1.5. 言語理解タスクと呼ばれる

6.4.4.2. BERT

6.4.4.2.1. トランスフォーマーのエンコーダを利用している

6.4.4.2.2. Google社が作った

6.4.4.2.3. 双方向Transformerを使ったモデル

6.4.4.2.4. 言語モデルによる学習は行えない

6.4.4.2.5. Masked Language Model (MLM)

6.4.4.2.6. Next Sentence Prediction (NSP)

6.4.4.2.7. 各単語の最終状態を使って品詞タグ付けや固有表現解析を行える

6.4.4.2.8. SQuADのような回答の範囲を予測できる

6.4.4.3. 事前学習モデルの発展

6.4.4.3.1. ALBERT , DistilBERT

6.4.4.3.2. GPT-2

6.4.4.3.3. Megatron-LM

6.4.4.3.4. Vison Transformer

6.5. 深層強化学習

6.5.1. DLと強化学習を組み合わせた手法

6.5.1.1. 最も基本的な手法はDQN

6.5.1.1.1. 画像をそのままディープニュートラルネットワークの入力として、 行動候補の価値関数や方策を出力として学習する

6.5.1.1.2. 状態や行動の組み合わせが多い場合の学習を可能にしました

6.5.1.1.3. ターゲットネットワーク

6.5.1.1.4. Rainbowという手法に発展していく

6.5.1.1.5. 内発的報酬

6.5.1.1.6. Deep Q Network

6.5.2. 深層強化学習とゲームAI

6.5.2.1. ゲーム木をすべて展開できれば勝ち

6.5.2.1.1. でも時間的に無理

6.5.2.1.2. 効率化して探す手法が重要

6.5.2.2. モンテカルロ木探索

6.5.2.2.1. プレイアウトをもとに近似的に良い打ち手を決定する手法

6.5.2.3. マルチエージェント学習

6.5.3. 実システム制御への応用

6.5.3.1. ロボット制御に応用する際の課題

6.5.3.1.1. 状態や行動を適切に設定する必要がある

6.5.3.1.2. 「状態」に関する良い特徴表現を学習する必要がある

6.5.3.1.3. 報酬設計が難しい

6.5.3.1.4. サンプル効率が低い割にデータ収集コストが高い

6.5.3.1.5. 方策の安全性の担保が難しい

6.5.4. 課題に対する解決策

6.5.4.1. 事前知識を学習に組み込んで効率的な学習を行いたい

6.5.4.1.1. 事前知識 = ドメイン知識

6.5.4.2. オフラインデータの利用

6.5.4.2.1. 強化学習の基本形は、学習過程で試行錯誤して方策を獲得する枠組み

6.5.4.2.2. オフラインデータから方策を学習する手法も盛ん

6.5.4.2.3. 模倣学習

6.5.4.2.4. オフライン強化学習

6.5.4.3. シュミレータの利用

6.5.4.3.1. 実世界からデータを収集するコストが高いことが問題

6.5.4.3.2. sim2real

6.5.4.4. 残差強化学習

6.5.4.4.1. 実際にロボットがタスクを行う環境における最適な方策との差分を強化学習によって学習すること

6.5.4.4.2. 既存の制御手法を組み込むことができて安全

6.5.4.5. 環境のモデルの学習

6.5.4.5.1. モデルフリー

6.5.4.5.2. モデルベース

6.5.4.5.3. 世界モデル

7. DLの実装に向けて

7.1. AIと社会

7.1.1. AIのビジネス利用と法・倫理

7.1.1.1. AIを利活用する本質

7.1.1.2. AIによって経営課題を解決し、利益を創出すること

7.1.1.3. どのような成功を導きたいのかという経営方針の検討にもつながる

7.1.1.3.1. 5日が1分になること

7.1.1.4. 法を遵守する必要がある

7.1.1.4.1. 倫理は、「価値」に関する対話

7.1.2. 周辺分野とのつながり

7.1.2.1. 情報は、物理的空間と仮想的空間に分散している

7.1.2.1.1. デジタル空間は安価にデータを残せる

7.1.2.2. loT・RPA

7.1.2.2.1. アナログ空間で発生している状況をデジタル空間へ送る必要がある

7.1.2.2.2. ブロックチェーン

7.1.3. 本章の構成と狙い

7.1.3.1. AIを構成要素として含むシステム(AIシステム)

7.1.3.1.1. 技術とビジネス、法と倫理を巻き込んだ 総合的な見解によって行うことが必要不可欠

7.2. AIプロジェクトを計画する

7.2.1. プロジェクト進行の全体像

7.2.1.1. CRISP-DM

7.2.1.1.1. データマイニングのための産業横断型標準プロセスのこと

7.2.1.2. MLOps

7.2.1.2.1. AIを本番環境で開発するまでの概念

7.2.2. AIプロジェクトの進め方

7.2.2.1. AIを適用すべきかを検討する

7.2.2.1.1. 利活用した場合の利益計画を立てて投資判断を行う

7.2.2.1.2. 組み込むべきデータのフィードバックの機構を どのようなものにするかを検討する

7.2.3. AIを適用した場合のプロセスを再設計する

7.2.3.1. AIを利活用する場合はBRRが発生する

7.2.3.1.1. AIを利活用するプロセスに変更する必要があるため

7.2.3.1.2. それぞれのプロセスを設計し直す

7.2.4. AIシステムの提供方法を決める

7.2.4.1. クラウド上でWebサービスとして提供する方式

7.2.4.1.1. クラウド

7.2.4.1.2. Web API

7.2.4.2. エッジデバイスにモデルをダウンロードし、常に最新の状態となるように更新を続けるという方式

7.2.5. 開発計画を策定する

7.2.5.1. ほしい出力を数値として定量的に表す必要がある

7.2.5.1.1. モデルのパラメータを更新するため

7.2.5.1.2. プロジェクト管理も重要

7.2.6. プロジェクト体制を構築する

7.2.6.1. 開発段階から多岐にわたるスキルを保有する 様々なステークホルダーを巻き込んだ体制づくりが必要

7.2.6.1.1. マネージャー

7.2.6.1.2. デザイナー

7.2.6.1.3. データサイエンティスト

7.2.6.1.4. 経営者・法務・経営企画・広報官の連携も重要

7.3. データがそもそもデータベースに登録されていないために偏りがある場合

7.4. データを集める

7.4.1. データの収集方法および利用条件の確認

7.4.1.1. 開発には、データの質と量が重要

7.4.1.1.1. データオープンセット

7.4.1.1.2. 自身でセンサを利用し、環境の情報を計測し、データを収集する必要がある

7.4.2. データの利用条件と制約の確認

7.4.2.1. 著作権法

7.4.2.2. 不正競争防止法

7.4.2.2.1. 営業秘密にあたるデータ

7.4.2.3. 個人情報保護法

7.4.2.3.1. 購買履歴や位置情報などのパーソナルデータ

7.4.2.4. 個別の契約

7.4.2.4.1. ライセンスなどで利用条件が指定されているデータ

7.4.2.5. その他の理由

7.4.2.6. 金融分野における個人情報保護に関するガイドライン

7.4.2.6.1. 機微情報ついては利用禁止

7.4.2.6.2. 要配慮個人情報の取り扱い禁止

7.4.3. 学習可能なデータを集める

7.4.3.1. データの偏りをなくすことが重要

7.4.3.2. データの網羅性

7.4.3.2.1. 転移学習を利用することでデータが少なくても頑張れるけど

7.4.3.3. データの質も重要

7.4.4. データセットの偏りに注意する

7.4.4.1. サンプリング・バイアス

7.4.4.1.1. 不適切な標本抽出は課題になっている

7.4.4.2. 現実世界の偏見をそのまま反映することも問題視されている

7.4.4.3. 学習のための共有データが欧米主導で作られていること

7.4.4.4. 技術システムの透明性や説明責任が開発側には求められる

7.4.4.5. フィルター・バイアス

7.4.4.5.1. 自分が見たい奴だけ見ると、情報が偏る

7.4.5. 役割と責任を明確にして外部と連携する

7.4.5.1. 他企業や他業種と連携するケースが増えた

7.4.5.2. 産学連携

7.4.5.2.1. 研究機関と企業がコラボすること

7.4.5.3. プロジェクトマネジメント義務

7.4.5.3.1. 知識を有しないユーザーが適切にプロジェクトに関与するように働きかける義務

7.4.5.4. AI・データの利用に関するガイドライン

7.4.5.4.1. データ提供型

7.4.5.4.2. データ創出型

7.4.5.4.3. データ共用型

7.5. データを加工・分析・学習させる

7.5.1. データを加工する

7.5.1.1. データの変換

7.5.1.2. ダウンロードして集約する

7.5.1.3. 事前加工

7.5.1.4. アノテーション

7.5.1.4.1. 教師あり学習

7.5.1.4.2. 正解データを作成する必要がある

7.5.1.4.3. アノテーションの要件を正しく決め、作業者のアサインメントを調整し、レビュープロセス等の仕組みを作る

7.5.1.4.4. マニュアルを作成する

7.5.2. プライバシー等に配慮してデータを加工する

7.5.2.1. 匿名加工情報

7.5.2.2. カメラ画像利活用ガイドブック

7.5.2.3. ELSI

7.5.2.3.1. 倫理や社会通念の観点からも検討を行うことも重要

7.5.3. 開発・学習環境を準備する

7.5.3.1. Python自体とそれらのライブラリのバージョンを合わせる必要がある

7.5.3.2. puenv

7.5.3.2.1. virtualenv

7.5.3.3. Docker

7.5.3.3.1. 仮想環境を利用することで、OSのレベルから環境の一貫性を保つ

7.5.4. アルゴリズムを設計・調整する

7.5.4.1. ビジネスにおける目標に対して精度とコストの折り合いをつけて進める必要がある

7.5.4.2. データの公平性を高めると精度が落ちる問題

7.5.4.3. プライバシーやセキュリティの観点からは望ましくない問題

7.5.4.3.1. FATという研究領域

7.5.4.3.2. ACM FAT

7.5.4.4. ブラックボックス問題

7.5.4.4.1. どの変数がより多くシステムに使われていて重要であるか等説明が困難になる問題

7.5.4.5. フィルターバブル現象

7.5.4.5.1. 特定の政治傾向を強化したりするかも

7.5.5. アセスメントによる次フェーズ以降の実施可否を検討する

7.5.5.1. アセスメントフェーズ

7.5.5.1.1. データの収集及びモデルの検討を行う

7.5.5.2. 同様の問題を解いている事例や文献の有無を調査する

7.5.5.3. モデルは運用の推論時間を視野に入れて選択する

7.5.6. 現場でのコンセプト検証(PoC)を行う

7.5.6.1. データの加工とアルゴリズムの設計・調整を中心に進め、AIモデルを作成する

7.5.6.2. AIでの認識と人による最終決定を組み合わせるという仕組みを取り入れる

7.6. 実装・運用・評価する

7.6.1. 本番環境での実装・運用を行う

7.6.2. 成果物を知的財産として守る

7.6.2.1. モデルは一定の条件を満たせば保護される

7.6.2.2. データの集合体が「データベースの著作物」

7.6.2.3. 限定提供データ

7.6.2.4. オープンデータに関する適用除外

7.6.2.5. 秘密管理することが重要

7.6.2.5.1. 営業秘密としての保護を受けるため

7.6.3. 利用者・データ保持者を保護する

7.6.3.1. 個人情報を取り扱うときは利用目的をできる限り特定しなければいけない

7.6.3.2. EU一般データ保護規則(GDPR)

7.6.3.3. 十分性認定

7.6.3.3.1. 個人のデータの移転を行うことができるだけのデータ保護の水準を持つ

7.6.3.4. アルゴリズムバイアス

7.6.3.4.1. あえて多様性について学習させないでおくことで多様性を学ぶことができる

7.7. クライシス・マネジメントをする

7.7.1. 体制を整備する

7.7.1.1. クライシス・マネジメント

7.7.1.1.1. コーポレート・ガバナンス

7.7.1.1.2. 内部統制の更新が進められる

7.7.2. 実施状況を公開し、透明性を担保

7.7.2.1. 透明性レポート

7.7.3. 運用の改善やシステムの改善、次の開発へと循環させる