AIってそういうことか!ビジネスの現場で使えるPFN式活用法のメモ
第1章: 「深層学習」で進化した"3つの力"
-
歴史の流れ
- 1970~80年代: ルールベースの「エキスパートシステム」の台頭
- 機械学習の発展
- 問題に特化したチューニングを行なって、ようやく精度が上がることもあるレベル。
- 実用化までは到達しなかった。
- 2012年: Googleが「猫論文: キャットペーパー」を公開
-
深層学習が持つ、"3つの力"
- 認識: 人間の目の部分にあたる
-
物体認識: 物体が何なのかを認識すること
- 深層学習の登場以前は、あらゆる物体が識別できる汎用的な物体認識は非現実的だった。
- 深層学習の登場以降は、初めて魅せられた品物でも、カテゴリーや位置を高速で高精度に認識可能に。
-
汎化性能: 未知の環境が変わっても物体を正確に認識できる。
- 深層学習の登場以前は、照明条件や環境が変わると簡単に精度が落ちた。
- 深層学習の登場以降は、初めて魅せられた品物でも、カテゴリーや位置を高速で高精度に認識可能に。
- 人の動き認識: 人にセンサーを付けずに、動画から動きを認識できるようになった。
- 医用画像診断: 病変の疑いが高い部位を自動でマーキング
- 異常検知
- 自動運転
-
小売店の棚の状態を経時的に追う
- 棚の分析は人の経験や感性に頼って行われてきた。人と機械が協調して棚の状態をより精緻にとらえ、新たな施策を打っていくことが可能に
- 物体認識と音声認識、自然言語処理の組み合わせでロボットに指示を与えることが可能に
- 生成: 物を作ったりデザインしたりすること
-
Crypko(クリプコ): キャラクターの自動生成サービス。顔や上半身の生成が可能
- 2022/4サービス提供開始
- 画像生成やキャラクター生成の技術によって、キャラクターを無限に生成できるようになる。
- 背景生成への利用: アニメーションの背景を深層学習によって生成。作業時間を約6分の1まで短縮
-
Scenify(シーニファイ): 背景を作る人がAIシステムに全てを任してしまうのではなく、AIシステムと協調しながら絵を作成していくことを可能にした。
- 東映アニメーションに実際の現場で利用されている。
- 化合物設計: 薬や素材を作る世界で目的にかなった性質の化合物を設計する。
- 制御: 物をコントロールする力
- 深層学習以前は、決められたことは人間よりも正確にできる一方で、ルール化できないことや学んでいないことに関して非常に脆弱だった。
-
例:
- ドローンの制御の仕方をコンピュータが自ら獲得した
- ロボットに物の掴み方をゼロから教え込んだ。掴む際に対象を掴みやす場所に移動させることを自ら学習。
- 掴む際に周りの邪魔な物体を移動させることを自ら学習
- 「こういったことも認識できるんだ」といった理解を深める
第2章: 機械学習・深層学習の基本
-
知能とは?定義がたくさんあり、現時点でも決着はついていない。
- 環境変化に対応して学習する能力
- 多様な環境でさまざまな目標を達成できる能力
-
ダートマス会議(1956年): AIについて言及。
- 当時の世界中の計算科学や数学などさまざまな分野のトップの人々が集まった。
- コンピュータができてきからAIシステムを作ろうといって2ヶ月間かけて集中的に取り組んだ。
-
人間は簡単には説明できないような、非常に高度な処理を無意識で実現している。
- 無意識ゆえに実現方法がわからない。
- ファスト&スロー: ダニエル・カーネマン
-
システム1: 無意識下の処理。直感的で思考が速く、無意識下で自動的に動いているので、いくら使っても疲れない。
- 並列処理が可能。
- 自動連想が得意。
- 慣れた問題に対してうまく対処できる。
- 機械学習・深層学習のアプローチを使って、無意識で直感的に解けるようになった。
-
システム2: 意識下の処理。論理的で思考が遅く、意識しないと動かないので、使うとどんどん疲れます。
- 基本的に並列処理は難しく、1つのことしか処理できない。
- 集中しているので連想もしない。
- 初めての問題に対してうまく対処できる。
- AI技術の発展の歴史の始まり
- 意識下で行われているので、ルールやロジックがわかっている。そのため、定理を適用して数学の問題を解く場合のように明示的な方法(ルールやロジック)で処理が可能
- 今のAI技術では、人間のようにシステム1とシステム2を融合することはできていない。
-
AIシステムは人の知能に比べると劣っているが…
- コンピュータはすでに計算、記憶、通信能力で人を圧倒している。
- いくら動いても疲れない。
- 非常に大きなコストをかけて作った学習結果は、ほとんどコストをかけずにいくらでもコピーできる。
-
人の知能をどこまでまねるのか
- 将棋や囲碁のように、人の知能とは別のアプローチで解いて、人を超える事例がある。
-
機械学習
- どのように学習するか?
- 教師あり学習: 入力と出力の対応関係を正解のお手本として獲得するような学習
- 強化学習: 報酬を外部からもらってその報酬を最大化するような行動を獲得する学習
- 教師なし学習:
- 学習の結果をどのようなモデルを使って表現するのか?
- 機械学習モデル
- SVM
- ロジスティック回帰
- ランダムフォレスト
- 単純ベイズ
- 深層学習
- モデル: 対象物や対象システムを情報として抽象的に表現したもの。
- 機械学習の文脈で言うと、Xという入力を与えたらYという出力を返す「関数」
- パラメーター: モデルの挙動を決める変数
- パラメトリックモデル: パラメーターで挙動が決まるモデル
- 学習: 与えられた学習データを使って、モデルの最適なパラメーターを推定すること。
-
最適の定義はユーザーが与える。
- 最も短い時間で目的地に到達できる
- 識別の精度が高い
- 複数のパラメータを調整しながら推定する過程こそが「学習」
- 教師あり学習
-
タスク例
- 画像分類: 入力: 画像 / 出力: 分類結果
- 音声認識: 入力: 入力波形 / 出力: 書き起こし文字
- 機械翻訳: 入力: 翻訳原文 / 出力: 翻訳先文
- 制御: 入力: 現在の状態 / 出力: 次にとるべき行動
- 強化学習: 問題設定で「良い行動」が取れるように繰り返し学習すること
- メリット: 人を超えるような最適行動を獲得できる可能性がある
-
デメリット: 学習初期はほぼデタラメな動きをする。
- たくさんの試行錯誤を行い、そのなかでたくさんの失敗をする
- 教師なし学習: 入力データのみからデータの背後にある隠れた構造を獲得するモデル
- クラスタリングや主成分分析、生成モデル
- 自己教師あり学習: 教師なしデータから何らかの方法で人工的に教師データとなる正解を作り、その問題をたくさん解かせていく。その副産物として、問題を解くのに必要なスキルを獲得していく。
- フィードバックとして教師的な、つまり絶対的な正解を教えられるか、もしくは相対的に良いかどうかという評価的フィードバックしか教えられないかが重要な境目になります。
-
学習の具体例
- 最初に入力として、正解ラベルをつけたデータセットを用意する
- 2番目に入力から答えが出せるパラメータを持つモデルを用意する。答えはでたらめで良い。
- 3番目にモデルがどれくらい正解を出せているのかを評価する「損失関数」を用意する。
- 予測が当たっていたらペナルティは0、外れていたら1以上のペナルティを与える。
- 損失(ペナルティ)が小さくなるようにパラメーターを調整する。
- パラメータを更新することで学習済みモデルが完成する。
- 学習済みモデルに、学習で用いたデータ以外のデータを入力し、出力を評価する
-
ニューラルネットワーク
- ニューラルネットワークを使った深層学習が性能が高いことを一言で説明すると「表現学習」を実現しているから
- データの表現方法がうまくいっていれば、あとはどんな分類器を使おうが予測器を使おうが同じような精度を達成できる。
- 従来の機械学習では生データから特徴抽出を専門家が設計し、モデルに適用していた。ニューラルネットワークでは、モデルの中で特徴抽出が自動的に行われる。
-
トランスフォーマー: つながり方自体をデータに応じて変えられる能力を持ったネットワーク
- 与えられたデータからどういうつながり方をすればいいのか、しかもデータごとにどういうふうにそのつながり方を変えるのかというのも、学習によって自動的に決定するというモデル
第3章: AI技術をどのように活用するか
-
画像認識
- 最先端の事例を通じて、現在の画像認識技術の実力を知る
- 典型的な問題設定を知り、現実の問題をそれらに落とし込めるようにする
- 画像認識システムを実際に開発するプロセスやその中での注意点を知る
- 次世代店舗システム: 顧客のトラッキングや商品の動き。自動会計
- 自動運転
-
歴史(2012年以降)
- 2012年: AlexNetが非深層学習手法に圧勝
- 2014年: Deep Q-Networkがテレビゲームを学習
- 2015年: ResNetが人間の画像分類精度を超える
- 「画風変換」が話題に
- Faster R-CNNが物体検出の道を拓く
- DCGANが画像生成に革命を起こす
- 2016年: AlphaGoがプロ囲碁棋士イ・セドルに勝利
- 2020年: 言語モデルGPT-3登場
- 2021年: DALL-Eなど言語x画像の研究が注目
-
深層学習登場前と後
- 登場前
- 物体の画像をあらかじめデータベースに登録し、マッチングする必要がある
- 色や図形を使った簡単な分類器を物体ごとにつくり込む
- 登場後
-
訓練データセットさえ集めてしまえば、自動でルールを獲得できるようになった
- 人間がルールを作る必要がなくなった。
- ロバスト性: 外部環境の変化による影響を受けにくいこと
- 画像認識のデファクトスタンダードであるCNNの基本的な原理を学ぶ
-
CNNの特徴
- CNNとは、畳み込みフィルターを何段階も適用するモデル
- 層が進むにつれて、大きくて抽象的なパターンを抽出できる
- 各畳み込みフィルターのパラメーターは、教師データにフィットするように自動で獲得される
- 画像認識のデファクトスタンダード
- タスク
-
画像分類: 画像を複数のカテゴリーの中から分類する
- 教師データの作成コスト: 低 / モデルの複雑さ: 低
-
セグメンテーション: 画像をカテゴリーごとに塗り分けた画像に変換
- 教師データの作成コスト: 高 / モデルの複雑さ: 中
-
物体検出: 画像中の各物体の位置とカテゴリーを予測する
- 教師データの作成コスト: 中 / モデルの複雑さ: 高
- 画像生成: カテゴリーなどから画像を生成する
- 画像認識システム開発の流れ
- 要求
- タスク定義
-
データセット作成
- アノテーションルール整備
- アノテーション作業
- データ取得(撮影など)
- 認識モデル設計
- 認識モデル学習
- デプロイ・システムインテグレーション
- 評価
- 改善
- レポート
-
最適化: 「条件を満たす」「評価基準にとって良い解を見つける」こと
- 大胆に最適化問題を3種類に分類
-
シンプルなホワイトボックス最適化: 簡単な数式で表現できる。数理最適化
- 数理最適化ソルバー: 条件の数式と評価基準の数式を入れると解が出力される
- ソルバーを使った最適化の進め方
- 現実世界の問題
-
主要な部分のみの数式化
- ソルバーで扱える形にモデル化するのが難しい→シミュレーションやブラックボックス最適化に基づくアプローチ
- 既成ソルバーを使ったプロトタイピング
-
性能評価
- 専用アルゴリズムや特別な工夫
-
ドメイン専門家からのフィードバック
- モデリングの改善
-
複雑なホワイトボックスス最適化: 数式化できるが、中身が複雑
- アプローチ
-
何とか工夫して解く: 問題の性質を考えて手法をつくり込む
- 専門家に聞くなどして、その問題に特化した良い手法がないかを調べる
-
コンピューターにたくさん試行錯誤させる
- 焼きなまし法
- 遺伝的アルゴリズム
- 強化学習: エージェントが環境に対して何か行動を行い、それに対して、環境にどういう変化が起こったのか、どういう嬉しいことが起きたのかを点数化して返す。
- 嬉しさを数値化するのが大変
-
ブラックボックス最適化: 中身が未知
- グリッド探索: 一定の間隔で満遍なく点を打っていくアプローチ
- 網羅的に探せるメリットがある。一方で、効率が悪い
- ベイズ最適化: 最初はランダムな探索を行い、過去の経験から次第にどの点が良いかを推定する。
- 見込みの薄い領域より、見込みのある箇所を探索するため効率が良い
- Optuna: ハイパーパラメーターの最適化を自動化するためのフレームワーク
- ブラックボックス最適化の技術が使われている
- ブラックボックス最適化の性能を競う世界的なコンペティションに参加し、Optuna開発メンバーが5位に入賞
- プラットフォームに依存せず、きれいに可視化する機能や並列化して最適化を早める機能などがある。
- 深層学習のネットワーク構造を最適化する事例
- 精度と計算時間を両立できるネットワークの構造をブラックボックス最適化で見つけ出した。
- 最適化するのに筋がいい問題
- 解の良さを客観的に数値化できること
- 人間の手に負えない問題
- 解けたら嬉しい問題=成功した時のインパクトが大きい問題
-
異常検知: 正常の状態とは異なる状態を見つけ出す技術。正常状態と異常状態を定義し、データから正常なのか異常なのかを見つけ出す。
- 見る異常: 人の目で分かる異常
- 外観検査: 異物、汚れ、傷をチェックする
-
深層学習
- 教師あり学習: 対象製品の良品と不良品それぞれの画像を用意し学習させる。
- 教師なし学習: 対象製品の良品画像を用意し学習させる。
- 測る異常: 対象物を測り(センサー等)取得したデータの変化が異常
- データの品質が重要
- 教師データがそもそも間違っていて、不良品を良品として登録していた。
- 意図せず不適切なヒントが紛れ込んでしまうこと
- 学習時と本番検査時で撮影状況が変わってしまう
- 課題設定をどうするのか
- 正常データと異常データの収集方法
- 異常の定義
- 異常検知後に何をするのか
- どれだけ前に検出できると嬉しいのか。直前 or 数日前等
- 異常を見逃した際のケア
- データが増えるのか
-
創薬: 新薬に適した化合物を取得して最適化していく「メディシナルケミストリー」から、バイオマーカーの探索、臨床試験、師範後調査など多様な領域がある。
- メディシナルケミストリー: 薬の化合物を設計したり合成したりする部分
- 創薬研究者へ、どこでどういう化合物を探索すべきかをガイドするツールが必要。このガイドとしてAI技術の利活用が積極的に進められています。
- DMTAサイクル: 下記のプロセスを複数回回していく。アストラゼネカという大手製薬企業の研究者が使い始めたフレームワーク
-
Design: 分子設計
- 深層学習が積極的に関与するようになっている。
- Make: 合成
- Test: 試験
- Analyze: 解析
- 深層学習による創薬
- 深層学習アルゴリズムで有効な可能性のある化合物のデザインアイディアをコンピューター上で多数自動生成する。
- 化合物に対して活性値や副作用などのスコアが予測される
- スコアを元に選別
- 化合物の合成方法などを考慮しながらデザインを更新する
- フィンガープリント: 深層学習の登場以前に「この構造があったら1にする」という要領で、0/1で化合物の分子をデータ化する手法
- SMILES(Simplified Molecular Input Line Entry System): 化合物の原子の並び方を1行の文字で表示する形式
- 分子生成で用いられる技術
-
VAE(変分オートエンコーダ, Variational Auto Encoder): 化合物のデータを潜在空間に圧縮して数値化し、その数値化したものを再構築して分子のデータに戻す。
- 圧縮した空間のどの点から分子をサンプリングするかによって多様な分子を生成する
- GAN: アルゴリズムに分子構造を生成させ、その生成した分子が本物の分子と見分けがつかないように、よりうまく分子を生成するようにアルゴリズムを学習させる
- 強化学習:
第4章: AIの未来
-
シミュレーションとAIの融合
- 深層学習の成功条件
- 大量の教師データが使えること
-
学習時のデータ分布と利用時のデータ分布が同じであること
- 内挿問題: 見たことがあるデータの範囲の内側と似たようなデータに対しては非常にうまく解ける
- 外挿問題: 一度も見たことがない外の世界のデータに対しては全く解けない
- 多くの試行錯誤が許されること
- シミュレーションを使うと「こういう行動をしたらシミュレーター上はこうなる」という効果予測までできる
- シミュレーションとAIの掛け合わせ
- 現実世界ではありえないほど高速で莫大な経験を瞬時に得て学習できる
- 大量の試行錯誤が可能になる
- (未来の話)リアルタイムでシミュレーションを行い、それを元に制御を行う
-
超大規模学習
- The Bitter Lesson: リチャード・サットンのブログ
- 蒸留(知識蒸留): 大規模モデルから目標タスク向けに特化した小さなモデルを抽出する