2021年11月のG検定受講用に作成したチートシート(11月現在の内容に沿って作成)
⇨当記事作成から試験受講までにたまっていたメモを反映するために更新(2022/02)しました。更新前と比較で約2倍くらいのボリュームになりました。
・主にシラバス(G検定公式テキスト第2版)を参考(7章まで)
・PCで使用する前提で改行(ズレてたらごめんなさい><)
・ページ内検索で使う前提で作成(検索はmacならcommand+F、windowsならctrl+F)
1.人工知能とは
人工知能 :
推論・認識・判断など、人間と同じ知的な処理能力を持つシステム。「知性」や「知能」自体の定義がないため、具体的な定義は未だに無い。AIの始まりは、エニアック登場の10年後、1956年ダートマス会議で初めて提唱。
エニアック(ENIAC):
1946年にペンシルバニア大学で開発された世界初のコンピュータ。
ダートマス会議 :
1956年に開催された知的コンピュータに関する会議。ジョン・マッカーシーより世界で初めて人工知能という言葉が使われた。会議で「ロジック・セオリスト」のデモンストレーションが行われた。
ロジック・セオリスト :
数学の定理を自動的に証明する世界初のAI。
アレン・ニューウェルとハーバード・サイモンによって開発。
人工知能レベル別分類 :
レベル1.シンプルな制御プログラム ⇨ ルールベース
レベル2.古典的な人口知能 ⇨ 探索・推論、知識データ利用
レベル3.機械学習を入れた人工知能 ⇨ 多くのデータから入出力関係を学習
レベル4.ディープラーニングを入れた人工知能 ⇨ 特徴量による学習
AI効果 :
AIによって何か新しいことが実現されてその原理がわかってしまうと、「それは単純な自動化であり知能ではない」と結論付けたくなる人間心理のこと。
第1次AIブーム / 推論と探索の時代 :
1950年代後半〜1960年代。
トイ・プロブレムは解けても複雑な現実問題は解けないと...ブーム去る。
第2次AIブーム / 知識の時代 :
1980年代。エキスパートシステムで再熱。
大量の知識を蓄積・管理することの大変さが明らかになり、再び冬の時代へ。
日本でも「第五世代コンピュータ」と呼ばれるプロジェクトが失敗に終わる。
第3次AIブーム / 機械学習の時代 :
2010年〜現在。
ビックデータを用いることでAI自ら知識獲得をする機械学習が実用化。
特徴量をAI自ら習得するディープラーニングも登場。
2.人工知能をめぐる動向
2.1 探索・推論
探索木 :
場合分けによる樹状の探索モデル。幅優先探索と深さ優先探索がある。
幅優先探索 :
始発に近い順にノードを探索する方法。最短距離の解を必ず見つけられるが、全て記憶するためメモリを多く使う。
深さ優先探索 :
行き止まるまで探索し、行き止まったら手前に戻って再度探索を繰り返す方法。解が最短かどうかは不明。記憶の必要がないのでメモリ消費は少ない。ステップ数が多い場合はこちらの手法を利用する。運が良いと早いが悪いと遅くなるといった運要素を持つ。
ハノイの塔 :
探索木を使って解けるパズル。再帰的なプログラムにより実装できることで有名。特徴として指数関数的に手数増え、そのような場合分け増加を組合せ爆発とも呼ぶ。
ロボットの行動計画 :
ロボットの行動計画も探索を利用して作成できる。プランニングと呼ぶ。
STRIPS :
「前提条件・行動・結果」の3つの組み合わせで自動計画を記述する。
SHRDLU :
プランニングを「積み木の世界」で完全実現する研究。1968年~1970年にかけてテリー・ウィノグラートにより開発。後にCycプロジェクトに引き継がれる。
AlphaGo :
DeepMind社がディープラーニングを利用し開発した囲碁AI。2016年に世界トッププロに4勝1敗で勝ち越した。
コスト :
効率よく探索するための概念。例えばボードゲームにも探索が使われるが囲碁の手の組み合わせは10の360乗通り。しらみ潰しの探索では到底不可能のため、コストという概念を取り入れた。
ヒューリスティックな知識 :
探索に利用する経験則な知識のこと。ヒューリスティックな知識をコスト計算に利用する。
Mini-Max法 :
ゲーム戦略で利用される手法。
自分の番はスコア最大、相手の番はスコア最小になるような戦略をとる。
αβ法 :
Mini-Max法において、無駄な探索をカットする手法の1つ。
αカットは関心範囲の最小値カット、βカットは最大値のカットをする。
モンテカルロ法 :
ボードゲームにおいて最善手を評価する手法の1つ。ブルートフォース(力任せ)で押し切るやり方。何回もプレイアウト(終局)させて、勝率が高かった手を選ぶ方法。
2.2 知識表現
人工無脳 :
特定のルール・手順に従って会話するプログラム。チャットボットやおしゃべりボットなど。会話の内容を理解している訳ではないので人工無能と呼ばれる。
イライザ(ELIZA) :
「人工無脳」の元祖で精神科セラピストを演じる会話プログラム。1966年頃にジョセフ・ワイゼンバウムにより開発。
イライザ効果 :
あたかも本物の人間と対話しているような錯覚に陥ること。
エキスパートシステム :
専門家の知識を取り込み、その分野のエキスパートのように振る舞うプログラム。
DENDRAL :
1960年代に開発された未知の有機化合物を特定するエキスパートシステムプログラム。
MYCIN(マイシン) :
1970年代に開発された伝染性の血液疾患を診断し、適した薬を処方するエキスパートシステムプログラム。
意味ネットワーク :
知識を線で結びその関係性を表したもの。知識をノード、線をリンクと表現することもある。重要な関係性として「is-a」の関係と「part-of」の関係がある。
「is-a」の関係 :
継承関係を表す。推移律が成立する。矢印が向いてる側が上位概念、始点が下位概念となる。
「part-of」の関係 :
属性(全体と部分)の関係を表す。推移律は成立するものとしないものがある。最低5種類の関係があることが分かっている。
Cycプロジェクト :
全ての一般常識をコンピュータに取り込むというプロジェクト。ダグラス・レナートにより1984年に始まり、現在も続いている。始まった背景はエキスパートシステムのような知識ベースのシステムが、能力を発揮するには膨大な知識が必要となるため。
オントロジー :
概念化の明示的な仕様と定義されている。知識共有と活用を目的とした知識記述のルール(約束事)。意味ネットワークなどで用いられる知識の結び付き規則。
ヘビーウェイトオントロジー(重量オントロジー) :
人間が厳密にしっかりと考えて知識を記述していくアプローチで、構成要素や意味的関係の正統性については、哲学的な考察が必要。Cycプロジェクトで利用されている。
ライトウェイトオントロジー(軽量オントロジー) :
コンピュータにデータを読み込ませ、自動で概念間の関係性を見つけるアプローチ。完全に正でなくても使えればOKと考える。ウェブマイニング、データマイニングで利用されている。
ワトソン :
IBMが開発した質疑応答型のAIで、2011年にクイズ番組で歴代チャンピオンに勝利して有名になった。ライトウェイト・オントロジーを利用し、ウィキペディアの情報を使う。開発当初は医療診断、その後は料理レシピ考案やコールセンター、人材マッチングや広告など幅広い分野で活用されている。
東ロボくん :
日本で開発された東大合格を目指すAI。2011年~2016年まで続けられ、偏差値57.8までマーク。しかし、東大合格には何らかの技術的ブレイクスルーが必要と判断し凍結。
2.3 機械学習・深層学習
機械学習 :
人工知能のプログラム自身が学習する仕組み。
データが多いほど精度が向上する為、ビックデータにより加速。
レコメンデーションエンジン :
機械学習により実用化した、ユーザーの好みを推測するシステム。
例えばECサイトの「あなたへのおすすめ商品」表示など。
スパムフィルター :
機械学習により実用化した、迷惑メールを検出するシステム。
ニューラルネットワーク :
機械学習の1つで脳の神経回路を模した学習モデル。入力層と出力層、間のつながりを重みをして表現する。
単純パーセプトロン :
最も単純なニューラルネットワークのモデル。
複数の特徴量(入力)を受け取り、1つの値を出力する。
ディープラーニング(深層学習) :
ニュートラルネットワークを多層にしたモデル。
誤差逆伝播法(バックプロバケーション) :
ニューラルネットワークの学習アルゴリズムの1つ。出力層から入力層にかけて逆向きに予測値と正解値の誤差を評価する方法。層が多くなると誤差が最後まで正しく届かないという問題がある。
オートエンコーダ(自己符号化器) :
ニューラルネットワークの学習アルゴリズムの1つ。
入力層と出力層を同じデータにして学習する仕組み。
ILSVRC :
2010年~2017年に行われた画像認識の精度を競う大会。
2012年にトロント大学のジョフリー・ヒントン率いるSuperVisionが圧勝。
深層学習を活用したニューラルネットワークのモデルはAlexNet。
特徴量エンジニアリング :
今あるデータの特徴量からドメイン知識等を生かし新しくデータの特徴量を作成する作業。
データの質を上げ機械学習モデルの予測性能、すなわち汎化性能を向上させることが目的。
統計的自然言語処理 :
自然言語とは人が生活の中で使用する言語(日本語や英語)のこと。自然言語処理とは自然言語をコンピュータに処理させること。統計的自然言語処理は確率論や統計学的手法を使い、自然言語処理を施すこと。これは機械学習やデータマイニングの分野を起源に発展している。
なぜ統計的にやる必要があるのか? :
人が使用する言語の曖昧さをコンピュータが理解するのは難しいため。例えば「コンパス持っていますか?」という質問があったとして、これは持っている持っていないを聞いているのではなく、貸してくれませんか?という意味として人は使っている。このような曖昧さをコンピュータに理解させるのは余りに難しい。
3.人工知能分野の問題
トイ・プロブレム(おもちゃの問題) :
本質を損なわない程度に簡略化した問題のこと。
問題の本質理解や現実世界の問題に取り組む練習に役立った。
トイ・プロブレムは解けても複雑な現実問題は解くのは難しいと明らかに。
フレーム問題 :
「今しようとすることに関係のあることだけを選び出すことは難しい」という問題。
人工知能における最大の難問と言われている。フレーム問題は人間にも同じように起きるが、AI程深刻な問題ではない。
チューリングテスト :
AIに知能(人間的か)があるかを判定するテスト。数学者アラン・チューリングによって考案。
別の場所にいる人間にコンピュータと会話をして貰い、相手がコンピュータと見抜けなければ知能があると判定する方法。アランは1950年の論文で50年以内に人間と誤認する確率は、30%になると予想したが、現在、近い所まで来ていると言えるがテストにパスするレベルには達していない。
ローブナーコンテスト :
1991年以降に毎年開催されている、チューリングテストに合格する会話AIを目指すコンテスト。
強いAIと弱いAI :
アメリカの哲学者ジョン・サールが1980年に発表したAIの区分。
強いAIは「意識を持ち、総合的な判断ができるAI」で、弱いAIは「意識を持たず、便利な道具であれば良いという考えに基づくAI」。強いAIを汎用型AI、弱いAIを特化型AIと表現する場合もある。強いAIは実現不可能と主張する研修者が多数いる。
中国語の部屋 :
強いAIの概念を生み出したジョン・サール自ら、強いAIは実現不可能と主張する為に行った思考実験。チューリングテストの結果は何の指標にもならないと言う主張でもある。
シンボルグラウンディング問題(記号接地問題) :
身体性を持たないAIは記号と対象が結びつかないと言う問題。
フレーム問題同様、人工知能の難問と言われている。
知識獲得のボトルネック :
人間の常識や知識をコンピュータが扱うのは極めて困難であるということの表現。
人が持つ常識や知識は膨大で曖昧であることが原因。
特徴量表現学習 :
従来の「人間が特徴量を見つけ出すのは難しい」という問題を解決するため、特徴量を機械学習自身に発見させる方法。
ディープラーニングは特徴表現学習を行う機械学習アルゴリズムの1つと言える。
シンギュラリティー(技術特異点) :
未来学者のレイ・カーツワイルが提唱した言葉。2045年には自分より賢いAIの生産をきっかけにAIが更に自身より賢いAIの生産を繰り返し、技術特異点(シンギュラリティー)になると予想した。実際に「AIが人の知能」を超えるのは2029年頃と言われている。
4.機械学習の具体的手法
4.1 機械学習の種類
教師あり学習 :
入力データを元に、そのデータの出力(パターン)を識別・予測する機械学習モデル。主に予測と識別を担当し、教師あり学習は回帰問題と分類問題に分かれる。
回帰問題 :
連続値(数値など連続する値)を予測する問題のこと。
分類問題 :
離散値(カテゴリなど連続しない値)を予測する問題のこと。
教師なし学習 :
入力データを元に、そのデータの自体がもつ構造や特徴を分析する機械学習モデル。
主にクラスタリングや次元削減を担当する。
例: ECサイトの売上データ(入力)から顧客層の特徴を認識をする。
例: 入力データの各項目間にある関係性を把握する。
強化学習 :
目的に設定された報酬(スコア)を最大化するための行動を学習する機械学習モデル。
例: 囲碁AIや自動運転などに利用されている。
4.2 教師あり学習の代表的手法
線形回帰 :
回帰問題に用いる手法の1つ。データの分布に最も当てはまる直線を考え、線上の値を返すことで予測する方法。線形回帰では予測値はあらゆる値となる為、目的変数yの範囲は-∞<y<∞となる。1つの説明変数で1つの目的変数を説明したもの単回帰分析、複数の説明変数で1つの目的変数を説明したもの重回帰分析という。
ラッソ回帰 :
線形回帰モデルにL1正則化を加えたもの。
自動的に特徴量選択を行い,重要でないと判断された特徴量は自動的にモデルから消えるようになっている。
リッジ回帰 :
線形回帰モデルにL2正則化を加えたもの。
Ridge回帰には特徴量の削減効果はない。
多重共線性 :
説明変数同士の相関が高いと予測精度が悪化する性質。
ロジスティック回帰 :
活性化関数としてシグモイド関数を使い、重回帰分析により二値分類を行う手法。分類問題に用いられ、多種類に分類したい場合はソフトマックス関数を使う。2値分類時の目的変数: y=0,1となる。
オッズ :
事象が起こる確率を起こらない確率で割ったもの。
ロジットリンク変換 :
ロジスティック回帰で用いられる一連の変換。
各項目の取りうる値 :
p,1-pは確率の為、取りうる値の範囲は0~1。
これらの比であるp/(1-p)の取りうる値の範囲は0~∞。
対数オッズであるlog(p/(1-p))の取りうる値の範囲は-∞~∞。
シグモイド関数 :
あらゆる入力値を0.0~1.0に変換して出力する関数。閾値を設定して、それ以上を正値、それ以下を負値の2種類に分類する。
k近傍方 :
回帰と分類が行えるシンプルな手法。分類においては、特徴量空間において距離が近い順に任意のk個を取得し、多数決でデータが属するクラスを推定する。スケールの大きい特徴量に左右されすぎないよう、標準化など前処理が大切。
最近傍方 :
k=1の時、最近傍方と呼ばれ、最も近いサンプルの値が予測値として出力。
識別境界 :
kが大きくなるに連れて識別境界はシンプルになる。最近傍方は複雑。
決定木 :
決定木は分類問題を解くアルゴリズムであり、木構造による条件分岐を繰り返すことで解かれる。分岐は情報利得の最大化を目的に行われる。木を深くすると過学習が起こるので注意が必要。始点を親(根)ノード、条件分岐経て辿り着いた先端を葉ノードと呼ぶ。根ノードはノードの深さに含まれない(根ノードから0基準)。特徴量の重要度は分割回数や分割によって減らされた不純度累計(gain)を利用。
剪定 :
決定木に対し汎化性能を損なわないような条件分岐の回数の初期値を設定することを指す。過学習を防ぐことに繋がる。
アンサンブル学習 :
複数のモデルを合わせて1つのモデルとして学習する手法。バギング、ブースティング、スタッキングの3種類が存在する。
バギング :
全体から一部のデータを用いて複数モデルの並列作成により学習する方法。並列処理のため、高速化しやすい。(複数のモデルをそれぞれ別に学習させ、各モデルの出力を平均もしくは多数決することで決める手法のこと)
ブースティング :
全体から一部のデータを用いて複数モデルの逐次的作成により学習する方法。弱学習器の数を増やしすぎると過学習を起こしてしまう。
スタッキング :
データ1で学習したあるモデルでデータ2を予測し、新たなメタ特徴量をする方法。データを分割しないと過学習を起こしてしまう。多様性の観点から様々なモデルを使用すると精度が非常に落ちる。
ランダムフォレスト :
バギングの中で決定木を用いる手法。回帰問題と分類問題に用いられる。ランダムに選んだデータ(特徴量)に対して、ランダムに決定木を複数作成し、それぞれの結果を用いて多数決をとる方法。バギングにより並列処理のために高速化しやすく、木の数を多くしても過学習になりにくい。
ブーストラップサンプリング :
重複を許してランダムにいくらかデータ(特徴量)を取り出して学習する方法。
勾配ブースティング :
ブースティングの中で様々なモデルで使用することができる手法。逐次的学習のため、ランダムフォレストより精度が高い。しかし、並列処理が出来ないので学習時間は多くなる。勾配ブースティングの中で決定木を使用するものを勾配ブースティング木と言う。
GBDTライブラリ: XGBoost、lightgbm、catboostなど。
サポートベクターマシン(SVM) :
マージン最大化によりパターン分類を行う手法。回帰問題と分類問題に用いられる。判別境界の付近にある判断の難しい観測に着目する分類モデル。
カーネル法 :
カーネル関数を使う事で非線形分類(高次元空間)の学習が可能。
カーネルトリック :
写像時に式変換により計算を大幅に削減するテクニック。
サポートベクトル :
識別境界付近に位置する学習データのこと。
スラック変数 :
SVMにおいて、スラック変数は初期値として必要なパラメータで、グループ分けの際に誤った分類をどれだけ許容するかを決める。
尤度 :
尤度とは、確率モデルにおいて、想定パラメータが具体的な値を取る場合に、観測されたデータが起こり得る確率のこと。パラメータの「もっともらしさ」でモデル比較をすることができる。
最尤推定: 尤度が最も大きくなるようにパラメータを推定する方法。
データが少ない場合やモデルが複雑な場合、最尤推定では過学習に注意。
ニューラルネットワーク :
脳の神経回路を模した手法。入力層と出力層、間のつながりを重みをして表現する。
単純パーセプトロン :
最も単純なニューラルネットワークのモデル。複数の特徴量(入力)を受け取り、1つの値を出力する。ロジスティック回帰と同等。線形分類しか扱えない。
多層パーセプトロン :
隠れ層を追加したニューラルネットワークのモデル。非線形分類など複雑なことが実現できるようになる。
活性化関数 :
伝播する際にあらゆる入力値を別の数値に変換して出力する関数。
ニューラルネットワークにおける重要な概念。
自己回帰モデル(ARモデル) :
時系列データを扱う回帰問題に用いる手法。
例: 株価の日足推移や、世界人口の年ごとの推移など。
ベクトル自己回帰モデル(VARモデル) :
自己回帰モデルを2つ以上の変数(複数種類)に拡張する手法。
教師あり学習の早見表 :
線形回帰(回帰問題)
ロジスティック回帰(分類問題)
ランダムフォレスト(分類問題と回帰問題)
勾配ブースティング(分類問題と回帰問題)
サポートベクターマシン(分類問題と回帰問題)
ニューラルネットワーク(分類問題と回帰問題)
自己回帰モデル(ARモデル) / ベクトル自己回帰モデル(VARモデル)
4.2 教師なし学習の代表的手法
クラスタリング :
データ間の類似度にもとづいて、データをグループ分けする手法です。
次元削減 :
データの次元を削減する手法です。
k-means法(階層なしクラスタリング) :
非階層型のクラスタリングを行う手法。
k個(自分で設定)のグループに分けてクラスタ分析をする。データの量が少ない場合に効果的。
あらかじめクラスタ数を決める必要: ハードなクラスタリング。
ウォード法(階層ありクラスタリング) :
階層型のクラスタリングを行う手法。
分割型と凝縮型に別れ、凝縮型では距離の近いものを1つのクラスタとして、
順にデータをまとめていく手法。最終結果はデンドログラム(樹形図)で表す。
どのクラスタに属するかを決めてしまわない: ソフトなクラスタリング。
群平均法 :
こちらも階層ありクラスタリングでデンドログラムで表す。
主成分分析(PCA) :
相関を持つ多変数の中から分散の大きい順に第1主成分、第2主成分...と見つける手法。
上位の主成分のみを取り出すことで次元削減できる。
主成分分析に関する知識
相関: 主成分どうしの相関は0となる。
寄与率: 各成分の重要度の事で大きい順に第1主成分、第2主成分...と呼ぶ。
カイザー基準: 主成分の数を決定する基準で固有値1以上を採用する。
スクリープロット: カイザー基準などで因子数決定の時のプロット図。
協調フィルタリング :
レコメンデーション(推薦システム)に用いられる手法。
例:Amzaonの「この商品を買った人はこんな商品を買っています」
コールドスタート問題 :
協調フィルタリングなどで事前にある程度のデータがないと推薦できない問題。
コンテンツベースフィルタリング :
ユーザーではなく商品自体に特徴量を付与して推薦する方法。
コールドスタート問題を回避することができる。
トピックモデル :
データを複数のクラスタに分類して分析する手法。
文書が複数の潜在的トピックから生成されると仮定している。
潜在的ディリクレ配分法(LDA)が代表でトピックモデルと言えばLDAを指すことが多い。
テキストデータにとく特異値分解を適用したLSIという手法もある。
教師なし学習の早見表 :
k-means法(階層なしクラスタリング) / ウォード法(階層ありクラスタリング)
主成分分析(PCA) / 協調フィルタリング / トピックモデル(潜在的ディリクレ配分法)
4.3 強化学習の代表的手法
活用 :
「現在知っている情報の中から報酬が最大となるような行動を選ぶ」
探索 :
「現在知っている情報以外の情報を獲得するために行動を選ぶ」
バンディットアルゴリズム :
強化学習における活用と探索のバランスを取ろうとする方法。
具体的にε-greedy方策やUCB方策がある。
(活用と探索はトレードオフでバランスを取るのが鍵)
ε-greedy方策 :
・探索:ランダムに行動を選ぶ
・活用:報酬平均が最高な行動を選ぶ
この繰り返しで探索と活用のバランスを取りながら累積報酬の最大化を目指します。εがハイパーパラメータなのでこれをうまく調節するのが難点ではあります。また、探索が行われる確率が固定されているのでいつまで経っても探索がランダムに起きる問題があります。
UCB方策 :
UCB方策(upper-confidence bound policy)ではそれぞれの行動に対してスコアを計算し、スコアが最大な行動を選びます。UCB方策での探索では、あまり選ばれていない行動を積極的に選ぶように工夫されています。
マルコフ決定過程モデル :
マルコフ性を仮定しているモデルのこと。
強化学習はマルコフ決定過程モデルと言える。
マルコフ性 :
確率論における確立過程のもつ特性の1つで、
その過程の確率は、現在の状態のみに依存し、過去には一切依存しないという特性。
Q学習(価値関数) :
状態や行動に「価値」を設定し、価値を最大化にするアプローチ。
状態価値関数と行動価値関数を導入する。価値関数と言ったら行動価値関数のことを指し、これをQ値とも呼ぶ。
Q値を最適化する具体的手法として、Q学習やSARSAがある。
方策勾配法 :
・方策をあるパラメタで表される関数とし、そのパラメタを学習することで、直接方策を学習していく。
・方策反復法の1つの手法である。
・方策勾配定理に基づき実装される。
具体的手法にAlphaGoにも活用されたREINFORCEや、Actor-Critic、A3Cなどがある。
4.4 機械学習モデルの評価
交差検証法 :
手元のデータを訓練用とテスト用に分割し学習・評価する手法。ホールドアウト検証とk-分割交差検証の2種類がある。
訓練用を更に訓練用と検証用に分けて、訓練・検証・テストで行う場合もある。
必要なモデルの学習回数はブロック数と一致する。何度もパラメータを変更するので過学習の恐れがある。
ブロックの数をサンプルの大きさにしたものは「1つ抜き法」と呼ばれる。
ホールドアウト検証 :
事前に手元のデータを訓練用とテスト用の2つに分割して学習・評価をする方法。
欠点として「学習データが減る」、「分割の仕方によって結果が変わる」、
「パラメータ変更を何度も行うことにより、過学習する恐れがある」などがある。
k-分割交差検証 :
訓練用とテスト用の分割を複数回行い、それぞれで学習・評価する方法。
たまたまテストデータの評価がよくなるケースを防げる。
混合行列 :
実測と予測の2つの次元からなる組み合わせ表のこと。
(正例と負例に対してTrueとFalseで表現される)
正解率(accurary) :
全データ(正負)の中、どれだけ予測が当たったかの割合。
accurary = (TP+TN)/(TP+TN+FP+FN)
適合率(precision) :
正と予測したデータのうち、実際に正であるものの割合。
偽陰性(False Negative, FN)を減らすことを重視する場合に適合率を採用する。
precision = TP/(TP+FP)
(Amazon による商品のレコメンドの精度など)
再現率(recall) :
実際に正であるもののうち、正であると予測されたものの割合。
偽陽性(False Positive, FP)を減らすことを重視する場合には再現率を採用する。
recall = TP/(TP+FN)
(病院における疾病の診断判定など)
F値 :
適合率と再現率の調和平均。
F値 = (2precisionrecall)/(precision+recall)
適合率や再現率のみの判断では予測が偏る可能性があるのでF値を用いる。
調和平均とは2ab/(a+b)で計算される平均値の一種。
過学習(オーバーフィッティング) :
訓練データに適合しすぎており、テストデータの精度が低下している状態。
正則化をすることで過学習を防ぐことにつながる。
正則化 :
過学習などを防ぎ汎用性能を上げるために「項」を追加して制約を設ける手法。
学習に用いる式に「項」を追加することで、重みの範囲を制限できる。
正則化をしすぎることにより「未学習」になる恐れがある。
未学習(アンダーフィッティング) :
正則化のしすぎや訓練の不十分により予測性能が低い状態。
L1正則化 :
L1正則化は一部のパラメータを0にすることができる。
このように不要なパラメータを削減できる特徴をスパーク性という。
ラッソ回帰はL1正則化を適用した線形回帰手法。
L2正則化 :
L2正則化はパラメータの大きさにを0に近づけることができる。
リッジ回帰はL2正則化を適用した線形回帰手法。
ElasticNet :
L1正則化とL2正則化を両方組み合わせた手法。
スパースなデータ :
要素に0が多くなるようなデータをスパースデータと言う。
ROC曲線とAUC :
閾値を0から1に変化させていき、そのプロット値(曲線)で評価する手法。
ROC曲線より下の面積をAUCと呼ぶ。
AUCが1に近いほどモデル性能が高いことを表す。
LIMEとSHAP :
モデルの解釈(どのように予測しているか)のアプローチ手法の1つ。
LIMEは複雑モデルを単純な線形モデルに近似し予測の説明性をもたせる。
SHAPは単純なモデルに近似し特徴量の寄与度を測ることで解釈する。
オッカムの剃刀 :
「ある事柄を説明するためには、必要以上の多くは仮定するべきではない」
という適正なモデル選択をする上での指針となる考え。
複雑モデルは予測範囲が広い、一方で計算コストの増加や過学習の恐れなどがあり、
安直に複雑モデルが良いわけでもなく、適正モデルを選ぶ難しさが背景にある。
AIC(赤池情報量基準) :
「モデルの複雑さと予測精度のバランス」を考えた基準となるもの。
モデルをどのくらい複雑にするかは難しい問題で、この問いに対する目安。
5.ディープラーニングの概要
5.1 ディープラーニングの基本
ディープラーニング :
ニューラルネットワークを多層化して特徴量を自動的に決定する手法。
学習に誤差逆伝播法を使用しており、層が深いので勾配消失問題を起こしやすい
誤差逆伝播法 :
出力層から入力層にかけて逆向きに予測値と正解値の誤差を評価する方法。
層が多くなると誤差が最後まで正しく届かないという問題がある。
勾配消失問題 :
ニューラルネットワークを多層化すると、誤差逆伝播法において、それぞれの層で
活性関数の微分がかかる事から、勾配が消失しやすくなり学習が進まなくなる問題。
活性関数であるシグモイド関数の微分の最大値は0.25しかないのが原因。
DNN(ディープニューラルネットワーク) :
ディープラーニングはあくまで機械学習と同様に人工知能の研究分野を指すもので、
モデル自体はディープニューラルネットワークと呼ぶことが大半です。
DNNの構成要素 :
ノード(ユニット)、コネクション(結合・エッジ)、バイアスで構成されます。
ノードは入力・中間(隠れ)・出力の層に分類され、中間層のノード前には活性化関数が搭載。
コネクションは各ノードを接続する役目で、各コネクションには重みが付与されている。
バイアスは各層の出力結果に偏りをもたせるための調整用パラメータである。
5.2 ディープラーニングのアプローチ
オートエンコーダ(自己符号化器) :
入力と出力が同じになるような層をもつニューラルネットワーク。入力と出力がセットになった可視層と隠れ層の2層からなる。
可視層(入力)⇨隠れ層⇨可視層(出力)と伝播し出力される。可視層の次元よりも隠れ層の次元を小さくする必要がある。
エンコード :
入力層から隠れ層への処理のこと
デコード :
隠れ層から出力層への処理のこと。
積層オートエンコーダ :
オートエンコーダを多層にしたもの。入力層に近い層から順番に学習させる逐次的方法(事前学習)。最後にロジスティック回帰層を追加し、ファインチューニングをする必要がある。オートエンコーダは入力=出力からもわかるように積み重ねるだけで、どこまでいっても出力ができない。それを解決するために、最後にロジスティック回帰層を足し、出力をできるようにする。
事前学習 :
オートエンコーダを順番に学習していく手順のこと。
ファインチューニング :
積層オートエンコーダにおいて、事前学習を終え、ロジスティック回帰を足した後に行う全体の最終仕上げ学習のこと。
深層信念ネットワーク :
教師なし学習に制限付きボルツマンマシンという手法を用いる方法。
ジョフリー・ヒントンが2006年に積層オートエンコーダと共に提唱。
5.3 ディープラーニング発展の要因
CPUとGPU :
CPUはコンピュータの汎用的処理を担います。
GPUはコンピュータの画像処理の演算などを担います。
ディープラーニングの発展に大きく貢献しているのはGPUです。
GPGPU :
GPUを画像以外の目的で最適化したもの。NVIDIA社が開発をリード。
NVIDIA社が提供するコンピューティングプラットフォームにCUDAがある。
Google社がテンソル計算に強いTPUというのを開発している。
バーニーおじさんのルール :
「モデルのパラメータ数の10倍のデータ数が必要」
必要データ量が不明の中、データ量の目安となる経験則。
5.4 活性化関数
活性化関数 :
ニューラルネットワークにおいて、入力値から出力値を決定するための関数。
出力層は、シグモイド関数またはソフトマックス関数で確率を表現する必要がある。
隠れ層ではさまざまな工夫ができ、tanh関数やReLU関数などが使われる。
tanh関数(ハイパボリックタンジェント関数) :
-1~1の範囲をとる関数。
微分の最大値は1(シグモイド関数は0.25)。
シグモイド関数よりは勾配は消失しにくいが防ぐまでとはいかない。
tanh関数はシグモット関数を式変形(線形変換)することで求められる。
ReLU関数 :
現在、最もよく使われているニューラルネットワークの活性化関数。
x値が1より大きい場合、微分値が1になるため、勾配消失しにくい。
x値が0以下の場合、微分値が0になるため、学習がうまくいかない場合もある。
微分不可能な点が存在する。いくつもの派生型がある。
Leaky ReLU :
0以下にわずかな傾き(0.01)を持たせることで微分値0を回避。
Parametric ReLU :
0以下の傾きを固定値とせず、学習の対象としている。
Randomized ReLU :
0以下の傾きをランダム値で設定する。
5.5 学習効率の最適化
学習率の最適化 :
機械学習の理想は「モデルの予測値と実際の値との誤差をなくすこと」。これを数学的にアプローチする。誤差を誤差関数と定義し、これを最小化する。つまり関数の最小化問題と捉える(関数の最小化と言えば微分)。データの母集団に対する誤差の期待値を汎化誤差と呼び、これを最小化するパラメータを得ることは理想である。
勾配降下法 :
勾配(微分値)を下っていくことで訓練誤差を最小化されるようにパラメータを最適化する。
局所最適解 :
勾配降下法による見せかけの最適解で、学習率を大きく設定すると防げる。
大域最適解 :
勾配降下法による本物の最適解で、学習率が大きいままだと飛び越えて探索し続ける恐れがある。
適切なタイミングで学習率の値を小さくすることが重要。
学習率 :
勾配に沿って一度にどれくらい下るかを表すハイパーパラメータ。
イテレーション :
何回繰り返し計算を行ったかの数。
イテレーション毎にただ1つのサンプル利用を逐次学習(オンライン処理)、
一定数のサンプル利用をミニバッチ学習、全てのデータを利用をバッチ学習と呼ぶ。
勾配降下法のパラメータ更新方法 :
勾配降下法は3種類あり、その違いは目的関数の勾配を計算するのに使うデータ量によります。
バッチ勾配降下法 :
全訓練データを利用して勾配を計算する。局所解から抜け出せない可能性があるが必ず収束する。
たった1回の更新にも全データを使うので処理速度が遅く、メモリに収まらないデータは更新できない。
また、オンライン学習(新しい例を得ながらモデルを更新)ができません。
確率的勾配降下法(SGD) :
全訓練データから確率的(ランダム)に一つのデータを選択して、誤差計算&パラメータ更新を行う。
通常より処理速度も早く、オンラインでの学習も使える。
全体の最小値(大域最適解)を見つけやすいが収束に時間がかかる。
ミニバッチ勾配降下法 :
両者の最良の部分を取ってn個(複数)のデータを選択し、ミニバッチ毎に誤差計算&パラメータ更新を繰り返す。
パラメータ更新の分散を減らし、より安定した収束へ導きます。
鞍点 :
ある次元から見ると極小、別の次元から見ると極大になっているもの。
勾配降下法での学習が上手くいかない原因になることがある。
鞍点上では勾配が0になるため、鞍点に陥るとそのままの勾配では抜け出せない。
プラトー :
鞍点付近で停滞してしまうこと。
プラトーを抜け出す方法として、進行方向に加速させる「モーメンタム」。
モーメンタム :
パラメータの更新に慣性的な性質を持たせ、勾配の方向に減速・加速したり、
摩擦抵抗によって減衰したりしていくようにパラメータを更新していくで、プラトー対策に有効。
勾配降下法のパラメータ更新方法(最適化手法) :
モーメンタム以外のパラメータ更新も多く存在する。
SGD(確率的勾配降下法) :
最も古くからあるパラメータ更新方法で、更新ごとの計算量がとても少なく、SGDをベースに多くの派生に繋がっている。
パラメータを勾配×学習率だけ減らします。学習率は一度のパラメータの更新でどのぐらい学習を進めるかを調整します。
小さすぎると学習が進まず、大きすぎるとパラメータが最適値を通り過ぎてしまいうまく学習できません。
AdaGrad :
パラメータが最適値までまだまだ遠い時は大きくパラメータを更新したいが、パラメータが最適値に近づいた時は
最適値を通り過ぎないようにパラメータの更新量を小さくしたい。
この考えをパラメータ毎に独立して自動で更新している手法です。
RMSprop :
AdaGradの内容ではステップが進むと学習率が小さくなり更新されなくなる問題がありました。
この問題を解決するため、最近の勾配ほど強く影響するようにした改良版がRMSpropです。
Adadelta :
AdaDeltaは単位をそろえたアルゴリズムです。こちらもAdaGrandの改良版でRMSpropとほぼ同等。
Adam :
2014年に出たものでAdamはmomentumSGDとRMSpropを合わせたようなアルゴリズムです。
5.6 学習精度向上のテクニック
ドロップアウト :
ランダムにニューロンをドロップアウトさせることで過学習を抑えるテクニック。
これはアンサンブル学習を行なっているのと同じような状況になる。
早期終了(early stopping) :
過学習を抑えるために学習を早めに打ち切るというシンプルな手法。
シンプルだけど、どんな場面でも使えるため、非常に強力。
打ち切るタイミング: テストデータに対する誤差関数が上昇傾向に転じたとき。
最近の動向: 最近は二重降下現象が確認されている。
ノーフリーランチ定理 :
「あらゆる問題に対して性能の良い汎用最適化戦略は理論上不可能である」と
いうことを示す定理。しかしearly stoppingはどんな場面でも使えて、
非常に強力。これはノーフリーランチ定理に「反している」と言える。
二重降下現象 :
一度テストデータに対する誤差が増えた後、再度誤差が減っていく現象。
学習前の工夫 :
ReLUなどの活性化関数、及びRMSpropやAdamなどの学習率の調整、そしてドロップアウトや早期終了など、
いずれも学習途中で最適化する工夫でした。しかし、これから紹介する学習前の工夫も大切となります。
正規化 :
データのスケールを合わせることで、学習時の収束を早める。
一番簡単なのは各特徴量を0~1の範囲に変換(正規化)すること。
(学習の途中だけではなく「始め」に工夫するのも大切)
標準化 :
データを平均0、分散1に変換する。
正則化 :
過学習の回避を目的とする。
損失関数に正則化項を追加することで、値の偏りを防止する。
白色化 :
各特徴量を無相関化したうえで標準化する。計算コストが高い。
重みの初期化 :
重み初期化の工夫として、乱数にネットワークの大きさを合わせた
適当な係数をかけることにより、データ分布の崩れにくい初期値が考案されている。
Xavierの初期値: シグモイド関数、tanh関数で有効。(\frac{1}{\sqrt{n}})を標準偏差とした分布を用いる。
Heの初期値: ReLU関数で有効。
バッチ正規化 :
各層に伝わってきたデータを、層ごとに正規化を繰り返す方法。
データの正規化、重みの初期化と比較し、より直接的な手法となる。
バッチ正規化の利点 :
・勾配消失が起きにくくなる
・学習が高速化する
・各層の出力を正規化するので、外れ値が少なくなり過学習が起こりにくくなる。
6.ディープラーニングの手法
6.1 畳み込みニューラルネットワーク
ネオコグニトロン :
S細胞とC細胞を組み込んだ最初のCNNモデル。福島邦彦により考案。
多層構造になっていてadd-if silentと呼ばれる学習方法を用いる。
単純型細胞(S細胞): 画像の濃淡パターン(特徴)を検出する
複雑型細胞(C細胞): 特徴の位置が変動しても同一の特徴であるとみなす
CNN(畳み込みニューラルネットワーク) :
人間がもつ視覚野(S細胞とC細胞)を模して作られた順伝播型のニューラルネットワークモデル。画像認識の分野に強く、画像を2次元のまま入力として扱うことができる。これは1次元に変換することで生じる「物体の位置情報が失われる」という問題を解決できると言う意味になる。CNNの特性上、入力層に近い中間層では全体的な特徴を捉え、出力層に近い中間層では個別の特徴を捉える。
畳み込み層 :
フィルタ(カーネル)を用いて画像から特徴を抽出する処理を行う層のこと。画像より小さいサイズのフィルタを用いて特徴マップを得る。フィルタの各値が重みにあたり、画像とフィルタの各値の積の総和を取る。移動不変性の獲得に貢献して、位置ズレに強いモデルにできる。
プーリング層 :
画像サイズを決められたルールに従い小さくする処理をする層。入力を圧縮する処理でダウンサンプリングあるいはサブサンプリングとも呼ばれる。プーリング層は学習によって最適化されるパラメータが存在しない。画像ズレに対して頑健性を得る。決められたルールには、小領域ごとの最大値を抽出するmaxプーリング、平均を抽出するaverageプーリングなどがあります。
全結合層 :
データをフラット(特徴マップを1列)に並べる処理を行う層。出力には特徴を2次元から1次元に変換する必要があり、CNNでは畳み込み層とプーリング層を繰り返した後に全結合する。多層パーセプトロンに用いられている層と同じ構造をしている。最近ではm全結合を用いず、Global Average Poolingが殆どになってきている。
Global Average Pooling :
平均値を1つのユニットの値にする方法。
・計算が必要なパラメータ(重み)を大幅に削減できる
・パラメータの削減は過学習のリスクを低減する効果がある
例えば畳み込み層が64チャンネルで7×7の出力をしていたとして、7×7の平均値を1つのユニット値とするため、出力のときに1次元、64チャンネルに圧縮することができる。これをもし全結合層で同じことをすると、7×7×64の畳み込み層の出力と、500ノードの全結合層では156万個のパラメータを学習しなければいけなくなる。
CNNの有名なモデルや発展形モデル :
数多くのCNN発展モデルが登場しており、有名所の紹介をする。
LeNet :
1998年にヤン・ルカン氏によって提案されたCNNモデルの元祖となるネットワークとして知られている。構造はシンプルで畳み込み層とプーリング層を複数組み合わせた構造。誤差逆伝播法を学習に用いる。
AlexNet :
2012年に初めてCNNベースのモデルでILSVRCを優勝したモデル。深層学習注目のきっかけとなった。ReLu関数を用いて勾配消失問題を回避。過学習対策としてはドロップアウトが使用されている。14層のネットワークで、他にもデータ拡張、バッチ正規化など数々のテクニックを取り入れています。
VGG :
2014年にILSVRCの分類部門で2位を取ったモデル。オックスフォード大学が提出したモデル。AlexNetより深い16~19の層での学習で性能を向上。3*3の小さなフィルタを使い計算量を減らしている。重みを持つ隠れ層(畳み込み層や全結合層)が16層あるバージョンは「VGG-16」、隠れ層が19層あるのは「VGG-19」と名付け。
GoogLeNet :
2014年にILSVRCの分類部門と検出部門で優勝したモデル。
Inceptionモジュールの導入により性能を向上させた。学習には誤差逆伝播法を用いている。
ResNet(Deep Residual Learning) :
SkipConnection(層を飛び越えた結合)(残差ブロック)を導入し、勾配消失問題に対処し、今までとは比較にならない深層を実現して、2015年のILSVRCを優勝したモデル。前年の優勝が22層だったのに対し、2015年のこのモデルは152層をだった。Microsoft社が開発。
Wide ResNet :
ResNetが主流モデルとなり、カーネル数を増やしたタイプ。
Dense Net :
ResNetのSkip connectionを工夫した派生モデル
SENet(Squeeze-and-Excitation networks) :
Attention機構を導入しており、2017年のILSVRC(最終回)の分類部門で優勝したモデル。
MobileNet :
MobileNetは通常の畳み込み処理の代わりに、DSC(Depthwise Separable Convolution)を用いることで、通常の畳み込み処理と比べ、計算量を1/8程度に削減しています。
・Googleによって発表された
・畳み込みの計算を分割することで、計算量の減少を達成した。
・ハイパーパラメータとしてwidth multiplier と resolution multiplier を用いる。
小型、低レイテンシー、低消費電力のモデルで、様々なリソース制約を満たすようにパラメータ化されている。
分類、検出、埋め込み、セグメンテーションのために、Inceptionのような他の大規模モデルと同様に構築することができる。
通常の畳み込み処理では、空間方向とチャンネル方向の積和の処理を行うが、DSCでは、空間方向をDepthwise Convolutionと呼び「チャンネル毎の畳み込み処理」、チャンネル方向はPointwise Convolutionと呼び「1×1の畳み込み処理」を行う。
計算量で例えると、O(HWNK^2M)からO(HWNK^2 + HWNM)に削減できる。
NASNet :
NAS(Neural Architecture Search)を利用している。
CNNの畳み込みやプーリングをCNNセルと定義し、CNNセルの最適化を行う。
NASは「パラメータ最適化」の前段階でニューラルネットワークの構造を最適化する。
NASの特徴は以下。
・ニューラルネットワークの構造自体がパラメータと重みを最適化する。
・膨大な計算量が必要な点が改善点とされている。
・AutoMLを実現するための理論である。
MnasNet :
NASNetの仕組みにモバイル端末の計算量も工夫している。
・Googleによって発表された。
・AutoMLを参考にしたモバイル用のCNNモデル設計である.
・速度情報を探索アルゴリズムの報酬に組み込むことで、速度の制約に対処した。
EfficientNet :
モデルの深さ、広さ、入力画像の大きさをバランス良く調整されたモデル。
転移学習に有用なモデルとして様々なコンペティションに活用されている。
データ拡張(データの水増し) :
手元の画像にランダムにいくつか処理をして擬似的に画像を生成する方法。
闇雲にやると意味が真逆になるものもあるので注意が必要(いいねボタンを180回転など)
基本的には拡大・縮小・向き変更・画素変更などの動作で行える。派生手法は以下で紹介する。
データ拡張が登場した背景 :
画像は同じ物体でも「明るさ」「角度」「大きさ」などにより見え方が異なる。それらを学習させるのに、全てを網羅したデータを揃えるのは不可能であり、それを解決するためにデータ拡張(水増し)が登場した。
Cutout :
画像の一部分に対して画素値を0にする。(固定値0でマスクする)
マスクする領域の大きさは、どのデータセットについても同じで有る。
Random Erasing :
画像の一部分に対して画素値をランダムにする。
・類似手法であるCutoutにくらべて、複雑な手法である。
・画像中のランダムな位置に、ランダムな縦横比の長方形を領域をランダムな値でマスクする。
・Random Erasingを利用することで、少ないデータでも学習することができる。
Mixup :
2枚の画像を合成し、存在しない画像を擬似的に生成する。
CutMix :
Cutoutの改良版であり、CutoutとMixupを組み合わせた方法。画像を2枚用意し、一つの画像からもう一つの画像へコピーすることで学習サンプルを増やす手法である。
前処理の紹介 :
訓練データとして使う前処理に「きれいな画像を汚し、ロバスト性を高める」水増しを行うこともできる。
転移学習 :
学習済みネットワークを利用し、自分で付け足した層のみ学習する方法。
深層化に伴い学習量が莫大になっている問題を解決するテクニック。出力層の後に新たな層を追加する。
ファインチューニング :
ネットワーク全体(付け足した層だけではない)を学習する方法。
学習済みの層の学習率を低く設定することで、すでに学習済みのモデルの重みの変更幅を小さくしている。
ImageNet :
学習済みのモデルが公開されている。
6.2 深層生成モデル(画像データの生成)
生成モデル :
元の画像と似たような画像データを生成することを目的としたモデル。
画像の生成タスクでは元画像から潜在空間を学習してベクトルで表現する。
主な深層生成モデル(VAEとGAN) :
ディープラーニングを利用した生成モデルでとりわけ成果を残している方法2種類。
VAE(変分オートエンコーダ) :
VAEは入力データを圧縮表現するのではなく、統計分布に変換する。すなわち、平均と分散で表現するように学習します。VAEはKLダイバージェンス。エンコーダで入力データを統計分布のある1点となる潜在変数に変換、デコーダで統計分布からランダムにサンプリングした1点を復元することで、新しい画像データを生成する。
GAN(敵対的生成ネットワーク) :
GANは「生成担当のジェネレータ」と「識別担当のディスクリミネータ」で生成と識別を競わせることで画像を生成するアーキテクチャである。GANでは、ジェネレータはディスクリミネータを騙せるような偽物画像を作るように学習していき、ディスクリミネータは偽物をきちんと見抜けるように学習していく。2種類を競わせることで、最終的には本物と見分けがつかない偽物画像の生成を実現する。
イアン=グッドフェローが提唱。
画像生成への応用が顕著で、ヤン・ルカンは「機械学習において、この10年で最もおもしろいアイデア」とコメント。
GANの特徴 :
・GANは尤度ではなく、識別器による生成器の良さを評価する。(識別を騙すものを生成するほど良い生成器)
・測る距離が、GANはJSダイバージェンスである。
・収束性、モードコプラス、勾配消失などの問題点がある。
モードコプラスとは生成器が似た出力しか出さないようになること。
GANの派生アルゴリズム :
DCGAN(Deep Convolutional GAN) :
GANの例としてオリジナルのGANよりもDCGANを説明しているケースが多い。
DCGANもオリジナルと同じで生成と識別で競わせる。オリジナルのGANとの大きな違いは、
GeneratorとDiscriminatorそれぞれのネットワークに全結合層ではなく、畳み込み層(と転置畳み込み層)を使用している点。
Pix2Pix :
GANを利用した画像生成アルゴリズムの一種で、2つのペアの画像から画像間の関係を学習し、
画像を生成する予測モデルと、生成された画像が偽画像かどうか判定する判定器を競わせあうことで、
その関係を反映したペア画像を生成する技術です。
ベクトルから画像を生成ではなく、画像から別の画像を変換する方法。
Cycle GAN :
GANのアルゴリズムの一種でスタイル変換による画像生成をします。
具体的には1つ画像を与えると、その画像から一度似ている画像に変換する。そしてもう一度、元の画像に戻るように変換する。
そしてGANのように、変換した画像が本物かどうかを予測するだけでなく、元の画像と再度変換した画像が一致するように学習する。
元の画像と再度変換した画像が一致するように学習する方法。
他のGANの応用形 :
AttnGANやStyleGANなどがある。
6.3 画像認識分野での応用
物体(画像)識別タスク :
画像に写る物体クラスの名称を出力するタスク。
画像に写る物体名称を出力するタスクで、厳密には確信度が出力しており、その確信度が最も高い名称を結果として出力している。クラス分類にあたる。CNNで活躍しているモデルがこの分野にあたる。
物体(画像)検出タスク :
画像に写る物体クラスの識別と位置を特定するタスク。
バウンディングボックスと呼ばれる短形の領域で位置やクラスを認識する。
画像内に含まれる関心対象の物体を自動的に背景から区別して位置特定することができます。
物体検出の2段階モデルと1段階モデルの違い :
検出タスクには、物体の位置を特定した後にその物体のクラスを識別する2段階モデルと、
クラス識別と位置の特定を同時に行う1段階モデルがある。
2段階モデル :
2段階法とも呼ばれ、一段階モデルと比べ、正確性は優れていますが処理は低速です。
R-CNN :
画像から物体候補領域をSelective Searchという方法で抽出。物体候補領域は一定のサイズにリザイズ後、CNNに入力。最終判定はサポートベクターマシン(SVM)によるクラス識別をするが、この組み合わせは時間が掛かります。
Fast R-CNN :
R-CNNの構造を簡略化して高速したモデルです。物体候補領域をCNNに入力するのではなく、画像全体を入力して特徴マップを獲得することで高速化をします。特徴マップ上で物体候補領域に相当する部分を切り出し、識別処理を行います。
Faster R-CNN :
Fast R-CNNまで使用していたSelective Searchという方法は処理時間が掛かります。
この処理をRegion Proposal NetworkというCNNモデルに変更して更なる高速化を図ったモデルです。
FPN(Feature Pyramid Network) :
前段のボトムアップなCNNの後段に、deepな層とshallowな層をトップダウンに接続した上で、更に各スケール階層同士をスキップ接続でつないで、砂時計型Encoder-Decoderを構成するの特徴集約のCNNバックボーンを拡張する構造である。
1段階モデル :
物体検出では、検出精度も重要ですが、高速な処理も非常に重要です。
処理を単純にできるので高速な処理を実現したのが一段階モデルです。
YOLO :
出力層を工夫して入力画像の各位置における物体領域らしさと短径領域を直接出力する仕組みになってます。この各位置は入力画像の画素単位ではなく、グリッドに分割した領域単位。検出と識別を同時に行うことで、遅延時間の短縮を実現した一段階モデルの最初のモデル。バッチ正規化や入力画像サイズの高解像度化などを工夫した派生モデルがある。
SSD :
CNNの途中の特徴マップからYOLOのように領域単位で物体らしさと短径領域を出力します。デフォルトボックスという短径領域のテンプレートのようなパターンに対するズレを出力する工夫も導入されている。YOLOよりもフィルタサイズを小さくしており、YOLOより高速で、Faster RCNNと同等の精度を実現しています。
物体セグメンテーションタスク :
画像の画素ごとに識別を行うタスク。
セグメンテーションタスクには、画像全体を対象とするセマンティックセグメンテーション、物体検出をした領域を対象とするインスタンスセグメンテーションがある。セマンティックセグメンテーションの場合は、同一クラスの物体をひとまとめにするので、集団の歩行者を一人一人分離することができません。インスタンスセグメンテーションでは、物体検出をした領域に対して、セグメンテーションを実施するので、一人一人分離ができるようになります。個々の物体をそれぞれ分離しつつ、道路や建物などをひとまとめにする、すなわち2つの方法を合わせたようなパノプティックセグメンテーションもあります。
セマンティックセグメンテーション :
画像中の全ての画素に対して(画像全体を対象)、クラスラベルを予測することを目的とする。
同一クラスの物体をひとまとめにするので、集団の歩行者などを一人一人分離することはできません。
インスタンスセグメンテーション :
画像中の全ての物体に対して(物体検出をした領域を対象)、クラスラベルを予測し、一意のIDを付与することを目的とする。重なりのある物体を別々に検出する点や、空や道路などの定まった形を持たない物体などはクラスラベルの予測を
行わない点があります。また、各物体に対して一意のIDを付与するため、例えば、1つの画像に複数の車が写っている場合、それぞれの車を別々の物体と認識します。
パノプティックセグメンテーション :
上の2つのセグメンテーションを組み合わせたタスクです。
画像中の全ての画素に対して、クラスラベルを予測し、一意のIDを付与することを目的とする。
個々の物体をそれぞれ分離しつつ、道路や建物などはひとまとめにすることができます
FCN(Fully Convolutional network) :
FCNは全結合層を用いず、畳み込み層だけで構成するモデルです。
CNNをセマンティックセグメンテーションタスクに利用した方法。
FCNには様々な方法が存在する。
SegNet :
畳み込み層とプーリング層を繰り返し積層し、小さくなった特徴マップを徐々に拡大する構造を採用している。特徴マップを徐々に小さくしていく部分をエンコーダ、徐々に大きくしていく部分をデコーダという。エンコーダ部分は、CNNモデルであるVGG16の一部が採用されたシンプルな作りとなっている。デコーダ部分は、Up sampled層と呼ばれる層を通過させることで、インプットと同じ大きさに復元をする.エンコーダ側の最大値プーリングした位置を記憶しておき、デコーダ側の拡大時に記憶していた位置に特徴マップの値を配置して、それ以外の位置の値を0にすることで、境界付近のセグメンテーション結果をぼやけさせない工夫がされている。
U-Net :
デコーダ側で特徴マップを拡大して畳み込み処理する際、にエンコーダ側の特徴マップと同じサイズになるように
切り出して利用するモデル。X線画像の医療画像新台位に用いられてる。
U-Netでは、Skipconnectionと呼ばれるエンコーダー部で取得した画像の特徴マップを、デコーダー部で再活用することのできる構造が採用されているため、プーリングや畳み込みといった層を通過する際の情報削減に強い特徴を有したセマンティックセグメンテーションモデルである。
PSPNet :
エンコーダとデコーダの間にPyramid Pooling Moduleという、複数の解像度で特徴を捉えるモジュールを追加したもの。
Pyramid Pooling Moduleは、エンコーダで得られた特徴マップを異なるサイズでプーリングし、それぞれの大きさで畳み込み処理を行う。
画像全体や物体の大きさに応じた特徴をマルチスケールで捉える方法となっている。
DeepLab :
Atrous convolutionを導入したモデルで、これはカーネルサイズを大きくすると広い範囲の情報を集約できるが、
計算量とパラメータ数が増えてしまうという問題に対するアプローチ。カーネルサイズ33、間隔を2とすると、入力の77の範囲の情報を集約します。畳み込み演算をする位置を2画素ずつあけて行うことで、カーネルサイズは3*3のままなので計算量と学習するパラメータが増えないやり方です。処理が全く同じDilated convolutionも存在する。
Atrous convolution :
カーネルサイズを大きくすると広い範囲の情報を集約できるが、計算量とパラメータ数が増えてしまうという問題に対するアプローチ。処理が全く同じDilated convolutionも存在する。
DeepLab V3+ :
SegNetやU-Netのようなエンコーダとデコーダ構造、PSPNetのような複数解像度の特徴を捉える機構(ASPP: Atrous Spatial Pyramid Pooling)を採用したモデルがDeepLab V3+です。
姿勢推定タスク :
人の頭や足、手などの間接位置を推定するタスク。
これを利用することで、監視カメラで人の異常行動を認識したり、スポーツ映像から人の動作を解析したりすることができます。関節の位置は人の姿勢により大きく異なるため、信頼度マップによるアプローチが有効的です。
Open Pose :
複数の人の骨格を同時に推定できるようにした手法です。
画像中に複数人いる場合は、どの頭の位置とどの肩の位置が同じ人物に属するかわかりません。そこでOpen Poseは、Parts Affinity Fieldsと呼ばれる骨格間の位置関係を考慮した処理を導入しています。
マルチタスク学習 :
画像認識分野において、CNNは出力層やネットワーク構造を工夫することで、様々なタスクに応用されています。
複数のタスクを1つのモデルで対応することをマルチタスクと呼びます。
Faster R-CNNやYOLOなどの物体検出モデルは、物体クラスの識別と物体領域の位置検出を同時に行っているのでマルチタスクと言えます。
Mask R-CNN :
Faster R-CNNによる物体検出だけでなく、セグメンテーションも同時に行うマルチタスクモデルです。
このセグメンテーションは、物体検出した領域ごとに行うので、インスタンスセグメンテーションになります。
エンコーダ :
特徴マップを徐々に小さくしていく部分のこと。
デコーダ :
特徴マップを徐々に大きくしていく部分のこと。
6.4 音声処理と自然言語処理分野
###音声データの扱い
End-to-End音声認識 :
典型的な音声認識システムの1つで、音声を入力、単語列を出力とする学習手法のこと。
具体的な内容手順 :
プロセス1:雑音・残響抑圧 (入力:音声 出力:音声)
音声を認識したい対象以外の雑音を分離する。
プロセス2:音素状態認識 (入力:音声 出力:音素)
音声の周波数スペクトル、すなわち音響特徴量をインプットとして、音素状態のカテゴリに分類する。
プロセス3:音素モデル (入力:音素 出力:文字列)
音素がどの文字であるかを推定する。
プロセス4:単語辞書 (入力:文字列 出力:単語)
認識した文字列から単語を特定し認識する。
プロセス5:言語モデル (入力:単語 出力:単語列)
単語系列仮説の尤度を評価する。
A-D変換(Analog to Degital Conversion) :
音声は時間とともに連続的に変化するアナログデータであり、コンピュータで扱うには離散的なデジタルデータに変化する必要がある。この音声を離散的なデジタルデータに変換する処理のことをA-D変換と呼びます。音声はパルス符号変調(PCM : Pulse Code Modulation)という方法で変換されるのが一般的。PCMでは連続的な音波を一定時間ごとに観測する標本化(サンプリング)、観測された波の強さを予め決められた値に近似する量子化、量子化された値をビット列で表現する符号化、この3つのステップを経てデジタルデータに変換します。
パルス符号変調は、アナログ信号のデジタル化に用いられる変調方式であるが、
自然界の現象のアナログ信号をデジタル信号に変換する際、標本化⇨量子化⇨符号化の工程をふむ。
高速フーリエ変換(FFT : Fast Fourier Transform) :
音声信号は刻々と変化するため、そこに含まれる周波数成分も変化する。
そのため非常に短い時間ごとに周波数解析を行う必要がある。
これを解決するために周波数解析をなるべく少ない計算量で、高速で行う手法がFFTです。
FFTにより音声信号を周波数スペクトルに変換できる。
周波数スペクトルは周波数、色、音声や電磁波の信号などど関係の深い概念である。
メル周波数ケプストラム係数(MFCC : Mel-Frequency Cepstrum Coefficients) :
音は「高さ」「長さ」「強さ」「音色」という属性を持ち、「音色」は音の違いを認識する上で重要です。高さ、長さ、強さが全く同じ音であっても異なる音として認識できる場合は「音色」が違うと言えます。音色の違いはスペクトル包絡(スペクトル上の緩やかな変動)の違いと解釈することが多く、このためスペクトル包絡を求めることは大切です。これを求める方法のスタンダードとなっているものが、MFCC(メル周波数ケプストラム係数)を用いる方法です。MFCCを用いると入力された音のスペクトル包絡に相当する係数列が得られ、これが「音色」に関する特徴量となり、以降の処理、例えば音声認識等で使うことになります。なおスペクトル包絡を求めるといくつかの周波数でピークを迎えることがわかりますが、このピークをフォルマントと呼び、フォルマントのある周波数をフォルマント周波数という。入力された音声の音韻が同じであればフォルマント周波数は近い値になりますが、個人差による多少のズレは生じます。
HMM(隠れマルコフモデル) :
HMMは音素ごとに学習するモデルで、観測されない隠れた状態をもつマルコフ過程モデル。
音声合成や音声認識の世界では、このHMMの統計的手法により、大量のデータを集め、
多数のコーパスを用意するものが一般的で長い間、標準的に用いられている。
しかし、2016年にNNのアルゴリズムを使ったWaveNetと呼ばれる高性能モデルが登場した。
マルコフ性とは、確率論における確率過程の持つ特性の一種で、その過程の将来状態の条件付き確率分布が、
現在状態のみに依存し、過去のいかなる状態にも依存しない特性を持つことをいう。
すなわち、過去の状態が与えられたとき、現在の状態(過程の経路)は条件付き独立である。
WaveNet :
2016 年にDeepMind社により発表されたCNNで使われている畳み込み処理を行なっているモデル。
音声合成と音声認識ができて、従来に比べて圧倒的に高い質での音声合成に成功している。
AIやスピーカーが人間に近い自然な言語を話すことなどに大きく寄与している。
###テキストデータの扱い
自然言語処理の研究と現状況 :
自然言語処理の研究においても深層学習の活用は目立っており、機械翻訳や画像説明文(キャプション)生成においては
大幅な性能向上が見られる一方で、構文解析や意味解析のように連続的な精度向上は見られるものの基本的な
手法は大きく変わらないもの。文脈解析や常識推論など現在のアプローチでは実用的な精度は見込めないもの等がある。
画像キャプション生成 :
入力の画像に対する説明文を出力する方法。
形態素解析 :
形態素と呼ばれる、言語で意味をもつ最小単位まで分割して解析する方法。
日本語は英語のようにスペース区切りがない為、分析には単語を区切る必要がある。
構文解析 :
構文解析とは単語同士の関係を推測する処理のこと。
意味解析 :
統計的な方法などを用いて、単語同士の結びつきを見出したりして、意味付けを行う処理のこと。
文脈解析 :
文脈解析とは、複数の文のつながりをチェックするものです。 代名詞の参照問題などもこの文脈解析に含まれます。
文脈解析は意味解析以上に困難とされている。
照応解析 :
文章内に存在する代名詞などが何を指し示しているのかを突き止めさせる解析。構文解析より困難とされている。
n-gram :
文字列は複数個の単語を並べたものと表現することができます。これを単語をn-gram(nは並べる個数)と呼びます。
n-gramは単位となるものを複数個並べたものという意味なので、単位が文字なら文字n-gram、音声なら音素n-gramなどが使われます。
なお、n=1の場合をuni-gram、n=2の場合をbi-gram、n=3の場合をtri-gramと呼ぶ。
Bag-of-Words(BoW) :
単語を単位として文書を表現するにはどのようにすればいいか。文や文書を、そこに出現する単語の集合として表現する。
どの単語が含まれるかに注目をして単語をベクトル化(数値化)する方法をBag-of-Words(BoW)と呼ぶ。
具体的には文書の数をk、出現しうる単語の数をnとしたとき、その文書内の出現回数をk*nのテーブルを作ってベクトル表現する方法。
Bag-of-n-grams :
BoWでは単語がバラバラに保存されており、出現順序の情報は失われてしまいますが、局所的な出現順序が意味を持つ場合があります。
そこでn-gramとBowを組み合わせたBag-of-n-gramsを利用することもあります。
ワンホットベクトル(one-hot vector) :
単語をコンピュータで扱うときには、文字列としてではなく数値に変換して扱うのが一般的です。
特にNNは数値列(ベクトル)しか扱えないので、単語もベクトルとして入力する必要があります。
各単語に異なる整数値を順に割り当ててID化を行い、このIDに相当するベクトルの次元の値だけが1で他全てを0となっている
ワンホットベクトルに変換するという方法があります。
こうするとBoWで表現された文書も、各次元の値がその次元に相当する単語の文書中の出現頻度である1つのベクトルとして表現できる。
TF-IDF(Term Frequency-Inverse Document frequency) :
文章に含まれる単語の重要度を特徴量とする。TFとIDFという2つの値を掛け合わせたものです。
TFは1つの文書内での単語の出現頻度、IDFはある単語が出現する文書の割合の逆数を取り、対数を取ったもの。
出現する文書の数が少ない単語ほど大きな値となるため、TF-IDF値の大きさがある程度のその単語の重要度を示す。
局所表現 :
ワンホットベクトルは値が0か1しかなく離散的で、1をとる次元が1つしかないため、情報が疎かであり、
次元数が単語の種類数と等しいため、非常に高次元であるという特徴がある。
このような単語の表現を局所表現という。
分散表現(単語埋め込む) :
局所表現は連続的で情報が密であり、これを次元数の低いベクトルに変換することを考えます。
このような単語の表現を分散表現、もしくは単語埋め込みと呼びます。
単語を分散表現で表すことで、ベクトル間の距離や位置関係から単語の意味を表現することができます。
この分散表現学習は自然言語処理の分野における成功の1つでこれはある種の意味的な演算が行えることを示した。
word2vec :
分散表現を得る代表的な手法で、「単語の意味は、その周辺の単語によって決まる」という分布仮説をNNを用いて推論ベースで
実現した手法です、word2vecにはスキップグラムとCBOWという2つの手法がある。google 社のミコロフが枠組みを提案。
word2vecの演算事例
V(Prince) - V(Male) + V(Female) ≒ V(Princess)
スキップグラム :
ある単語を与えて、その周辺の単語を予測するモデル。
CBOW :
周辺の単語を与えて、ある単語を予測するモデル。
fastText :
word2vecの延長線上にあるfastTextというライブラリがある。
個々の単語を高速でベクトルに変換しテキスト分類を行うモデルである。
word2vecと比較した場合の変更点は、単語埋め込みを学習する際に単語を構成する部分文字列の情報を含めること。
部分文字列の情報を併用することで訓練データには存在しない単語であっても単語埋め込み計算をしたりできます。
fastTextは学習に要する時間が短いという特徴もあります。
Wikipediaとコモンクロールを用いて訓練した世界中の157言語によるそれぞれの訓練済みデータを提供している。
ELMo :
word2vecやfastTextで得られる分散表現は各単語1つだけですが、これだと多様性をもつ単語や他の特定の単語と
結びついて特別な意味をもつ単語などを正しく扱えません。
そこで新たに登場したのがELMoで、これは文脈を考慮した分散表現を得る手法が提案されました。
ELMoを用いると複数の意味を持つ単語であっても、その単語が出現した文の他の単語の情報から、
その文において適切な意味を表した分散表現を得ることができます。
###RNN(リカレントニューラルネットワーク)
RNN(リカレントニューラルネットワーク) :
再帰構造をもち、時系列データを扱うために開発された再帰型ニューラルネットワークモデル。
再帰構造によって、隠れ層に情報を一時的に記憶できるようになった。自然言語処理でよく用いられる。
過去の入力による隠れ層(中間層)の状態を、現在の入力に対する出力を求めるのに使う。
BPTT(BackPropagation Through-Time) :
RNNの学習方法で時間軸に沿って誤差を反映していく。(誤差が時間をさかのぼって逆伝播する)
RNNの課題と特徴 :
勾配消失問題、入力重み衝突、出力重み衝突の課題をもち、時系列の古いデータほど勾配消失しやすい。
入力重み衝突 :
現在の入力に対し過去の情報の重みを小さくしてはならないが、将来のために大きな重みを
残しておかなければならないという矛盾が、新しいデータの特徴を取り込むときに発生すること。
出力重み衝突 :
現在の入力に対し過去の情報の重みを小さくしてはならないが、将来のために大きな重みを
残しておかなければならないという矛盾が、現在の状態を次時刻の隠れ層へ出力するときに発生すること
RNN音声認識での利用 :
自然言語処理でよく用いられるRNNですが音声認識でも用いられています。
RNNに音声データを時間軸に沿って入力していき、入力された音声の音素を出力として得ることで音声認識を実現できます。
しかし入力された音声データ数と、認識すべき音素の数は必ずしも一致しません。この矛盾を解決した方法が、
CTC(Connectionist Temporal Classification)です。CTCでは出力候補として音素に加えて空文字を追加し、
さらに連続して同じ音素を出力した場合には1度だけ出力したものと縮約する処理を行い、出力長と正解長の違いに対処している。
LSTM(Long Short-Team Memory) :
RNNが抱えている課題である勾配消失問題、入力重み衝突、出力重み衝突を解決するために考えられた内部にゲート構造をもつ
RNNの改良モデル。「CECという情報を記憶する構造」と「データの伝搬量を調整する3つのゲートを持つ構造」で構成されている。CECは誤差を内部に留まらせて勾配消失を防ぎ、3つの入力・出力・忘却ゲートは各重み衝突に対応、誤差過剰を防止する忘却も持つ。
GRU(Gated Recurrent Unit) :
LSTMは計算量が多いため、LSTMを少し簡略化したGRUという手法が用いられることがあります。
GRUでは入力・出力・忘却の代わりにリセットゲートと更新ゲートという2つのゲートが同じ役割を果たします。
画像キャプション生成にも利用されることがあります。
双方向RNN(Bidirectional RNN) :
過去の情報だけでなく、過去と未来の両方の情報を使って予測した方が効果的と考えられ生まれたRNNの応用モデル。
RNNを2つ組み合わせることで、過去と未来の両方の情報を踏まえた出力ができる。
seq2seq(sequence-to sequence) :
ここまでの事例では全て、入力は時系列で出力が1つでした。これを入力が時系列なら出力も時系列で予測したいと考え、
それに対応したモデルのことをseq2seqと言います。自然言語分野で活発に研究され、機械翻訳で注目となりました。
RNN エンコーダ-デコーダ :
seq2seqを用いて、エンコーダとデコーダで出力も時系列にする手法。
エンコーダでは入力される時系列データから固定長のベクトルを生成する。
デコーダでは固定長のベクトルから時系列データを生成する。
Attention :
RNNの応用により、様々な時系列タスクで高い精度を達成するようになりました。
一方でRNNは(LSTMにしろ、GRUにしろ)1つ前の状態と新たな入力から次の状態を計算するだけであり、
どの時点の情報がどれだけ影響力を持っているかまではわからないという問題があります。
そうした背景から、「時間の重み」をネットワークに組み込んだのがAttentionと呼ばれる機構です。
Attentionは「過去の入力のどの時点がどのくらいの影響を持っているか」を直接計算して求める手法です。
これは時系列タスクで精度の向上に多大に貢献するものとなりました。
###トランスフォーマー
トランスフォーマー :
RNNは時系列データの様々なタスクの精度向上を実現しましたが、RNNにはいくつか欠点があります。1つは並列計算ができず、処理速度が遅いこと。もう1つは先頭に読み込んだデータの影響が時間ともに薄れていくため、入力データの長さが長くなると遠く離れた単語間の関係が捉えきれないことです。これらの問題を解決した新たなNN構造として、2017年に提案されたトランスフォーマーです。RNNの構成はエンコーダとデコーダをAttention気候により、橋渡ししてもらうような構造でした。この橋渡しに使うAttention機構はSource-Target AttentionもしくはEncoder-Decoder Attentionと呼ばれます。トランスフォーマーはエンコーダとデコーダをRNNから排除し、代わりにSelf-Attentionを採用しているのが最大の特徴です。Self-AttentionとSource-Target Attentionの2種類のみの構成により、並列計算が行えて高速、またSelf-Attentionのお陰で遠い位置の単語関係も上手く捉えるようになりました。
Self-Attention(自己注意機構) :
入力分内の単語間または出力文内の単語間の関連度を計算したものです。他の単語との分散表現とSelf-Attentionの値との考慮をして自身の分散表現を更新することで、その文における文脈を考慮したより適切な分散表現を得られる。位置エンコーディングと呼ばれる単語の出現位置に固有の情報を付与し、位置関係を考慮できるようにしている。実はトランスフォーマーではエンコーダもデコーダもSelf-Attentionも用いているのですが、仕組み上の違いが2点あります。1つは、デコーダがSource-Target Attentionにより入力文の情報を利用する点。2つめは、エンコーダでは入力文の全ての単語を見ながら計算を行いますが、デコーダでは先頭から順に出力を生成するため、まだ出力していない未来の情報は使えないという点。
###自然言語処理におけるPre-trained Models
事前学習(pre-trainimg)モデル :
自然言語処理分野においても事前学習+転移学習という枠組みで様々な応用タスクを高精度に解くことが
できるモデルが2018年に提案。その先駆者がGPTとBERTの2つになります。
なお、word2vecやELMoも事前に大規模なデータを使って学習しているという点では共通しています。
しかし、これらのモデルではそれだけで応用タスクは解くことができず、別のNNは必要になります。
一方でGPTとBERTは事前学習と同じモデルを使って応用タスクを解けるという点で大きな違いがあります。
事前学習モデルと言ったらword2vecやELMoは含まず、GRTやBERTのことを指すのが一般的です。
GPT(Generative Pre-Training) :
OpneAIが開発した事前学習モデルで、大規模なコーパスを用いた言語モデルの学習を行い、トランスフォーマーのデコーダに似た構造をもったネットワークを用いています。言語モデルという性質上、将来の単語の情報を使うことができないので、エンコーダではなくデコーダの構造のみを用いることになります。
GPTで応用できる問題 :
自然言語推論 : 与えられた2つの文書の内容に矛盾があるか、一方が他方を含意するかなどを判定するタスク。
質問応答 : 文書とこれに関する質問が与えられ、適切な回答を選ぶタスク。しばしば常識推論が必要となる。
意味的類似度 : 判定と2つの文が与えられ、これが同じ意味であるか否かを判定するタスク。
文書分類 : 与えられた文書がどのクラスに属するかを予測するタスク。評価分析も文書分類の一種である。
GLUE(General Language Understanding Evaluation) :
上の4つのようなタスクは文書の内容や背景まで正確に理解していないと高精度に解けないため、
一般的に言語理解タスクと呼ばれます。この、言語理解タスクをまとめたベンチマークがGLUEです。
BERT(Bidirectional Encoder Representations from Transformers) :
Google社が開発した双方向Transformerを使ったモデルで、性能が高く様々な言語処理で使用された。
BERTではMLMとNSPという2つのタスクにより事前学習を行います。
各単語の最終状態を使い、品詞タグ付けや固有表現解析を行ったり、SQuADのような回答の範囲を予測するタイプの質問応答タスクを解いたりすることも可能です。
MLM(Masked Language Model) :
文中の単語の一部をマスクして見えないようにした状態で入力し、マスクされている単語を予測させるタスク。
NSP(Next Sentence Prediction) :
2つの文を繋げて入力し、2つの文が連続した文かどうかを判定するタスク。
Pre-trained(事前学習)Modelの発展
事前学習モデルの最近の発展 :
GPTとBERTが登場してからまだ数年ですが、次々と高精度なモデルが登場しています。
GPTのパラメータ数は約1億で、BERTは約3億でした。
ALBERTとDistiBERT :
この2つのモデルはタスクの精度を落とさずにパラメータ数を削減する工夫をしたモデルです。
GPT-2 :
こちらは上のモデルとは反対にもっとパラメータ数を増やして精度を向上させたモデルです。
GPTの後継にあたり、2019年2月に登場、約15億パラメータをもち、
GPTでは行えなかった機械翻訳や言語生成タスクもおこなるようになりました。
Megatron-LM :
2019年9月にNVIDIAから提案されたモデルで約83億のパラメータ数をもつモデルです。
Turing-NLG :
2020年2月にMicrosoftから提案されたモデルで約170億のパラメータ数をもつモデルです。
GPT-3 :
2020年5月にはGPTの最新モデルがでて、パラメータ数は約1750億にまで巨大化しました。
GPT-3を使うと言語生成タスクで非常に高精度に行えると話題になりました。
ViT(Vision Transformer) :
また面白いことに、トランスフォーマーが画像処理分野に持ち込まれ、
CNNを使わない新たな事前学習モデルViTも提案されています。
6.5 深層強化学習
強化学習の特徴(基本) :
強化学習では環境と学習目的を設定する。環境は状態、行動、報酬、遷移確率を内包する。エージェント(学習主体)は
「状態」に対する最適な「行動選択」を学習する。行動選択の結果、エージェントは「報酬」を得る。学習目的に近づく
「行動選択」であったのかを「報酬」に基づき改善する。エージェントがもつ行動選択のルールのことを「方策」という。
強化学習では「一連の行動」に対する報酬の最大化を目指す(個々の行動ではない)。
強化学習の各手法 :
Q学習 (Q値=価値関数) :
TD学習の1つでQ値(価値関数)ベースの強化学習法である。
Q値とは、ある状態のときにとった行動の価値を、Qテーブルと呼ばれるテーブルで管理し、行動するごとにQ値を更新していく方法。実行するルールに対しそのルールの有効性を示すQ値という値を持たせ、エージェントが行動するたびにその値を更新する。ここでいうルールとはある状態とその状態下においてエージェントが可能な行動を対にしたものである。
ε-greedy方策 :
Q学習などで用いられる方法。
・探索:ランダムに行動を選ぶ
・活用:報酬平均が最高な行動を選ぶ
この繰り返しで探索と活用のバランスを取りながら累積報酬の最大化を目指します。εがハイパーパラメータなのでこれをうまく調節するのが難点ではあります。また、探索が行われる確率が固定されているのでいつまで経っても探索がランダムに起きる問題があります。
SARASA :
TD学習の1つで状態S'のQ関数のうち、最大の値をもつQ関数Q(S',a^*)が用いられる。
モデルベース :
環境に対する情報が完全(即知)である場合に適応できる方法。
モデルフリーの方策ベース :
パラメトリックな関数で表現する。
モデルフリーの価値関数ベース :
報酬の期待値を状態や行動の価値計算に反映する。
深層強化学習 :
強化学習にディープラーニングを組み合わせた手法は深層強化学習と呼ばれる。
深層強化学習はニューラルネットワークを用いて、状態の重要な情報のみを縮約表現することで、
状態や行動の組み合わせが多い学習を可能にした。
このあと説明する、DQNを使用したAtari2600は様々なゲームで人間を超えるスコアを出した。
DQN(Deep Q-Network) :
DQNは、DeepKind社が開発した深層強化学習で、最も基本的な手法で注目を浴びるきっかけとなりました。
DNNで入力に状態を受け取り、Q関数を近似します。行動選択などの制御はあらかじめ設定した方策に従います。
従来のQ学習では、ある特定の状態に対して1つのQ値を割り当てて、その行動価値に対する学習を行なっていました。
DQNでは画像をそのままDNNの入力とし、行動候補の価値関数や方策を出力として学習するアプローチをとります。
このとき、DNNをCNNにすることで、入力の画像から価値推定に必要な情報を上手く処理できます。
DQNでは、経験再生とターゲットネットワークという新しい学習方法が導入されています。
経験再生(expreience replay) :
経験再生は、環境を探索する過程で得た経験(データ)をリプレイバッファに保存し、あるタイミングでこれらの保存データをランダムに複数抜き出してDNNの学習に使う手法です。これにより、学習に使うデータの時間的偏りを失くし、学習の安定化を図っています。
ターゲットネットワーク :
現在学習しているネットワークと、学習の時間的差分がある過去のネットワークに教師のような役割をさせる手法。
これにより価値推定を安定させます。
DQNの拡張手法 :
DDQN(ダブルDQN)(double deep q-network) :
DDQNは、DQNにおけるTargetデータを改良した手法である。DDQNでは、行動価値関数(Q値)に対して、価値と行動を選択するニューラルネットワークと、その行動を評価するニューラルネットワークの 2 つに役割を分ける。これによって、通常のDQNの計算では行動価値の推定が過大評価されてしまうという問題に対して対応することが出来る。DDQNの計算では過大評価な推定を抑えて、より正確に推定することが可能になる。DQNはたまたまQ値が高いところを学習してしまう場合があり、それを防ぐ手段にDQNを二重化したダブルDQNがある。
PER(優先度付き経験再生)(prioritized experience replay) :
経験再生の使い方を工夫したモデルです。オリジナルのDQNではReplayBufferに蓄積した遷移情報からのランダム選択によってミニバッチを作成します。しかし、遷移情報をランダムに選択するのでは思いがけず上手くいったような貴重なイベント(遷移)を学習する効率が悪いのでPER(優先度つき経験再生)ではその名の通り、意外性の高い遷移を優先してReplayBufferからサンプリングします。
デュエリングネットワーク(dueling network) :
普通のQ-networkは、状態を入力として受け取り、SeaquentialなNetworkを通して行動価値関数Q(s,a)を予測する。それに対しDueling-networkでは、状態を入力として受け取り、途中で状態価値関数V(s)とAdvantage( A(s,a) = Q(s,a) - V(s) )の二つの流れに別れた後、最後に足し合わせることで、行動価値関数Q(s,a)を予測する。
カテゴリカルDQN(categorical deep q-network) :
カテゴリカルDQNでは行動価値の期待値(平均値)ではなく、分布を計算します。行動価値の分布の分散が大きい場合には平均値以外の値を受けるリスクが高くなります。ターゲットネットワークQとQネットワークの両方とも分布を出力するので、交差エントロピーを計算し、誤差逆伝播をします。それ以外は他のDQNと仕組みは同じです。基本的に行動価値の期待値が最大になるように行動を選択します
ノイジーネットワーク(noisy network) :
DQNを含むQ学習ではε-greedy法によってランダムに行動選択する探索の要素を取り入れている。これは初めから行動価値が高いものだけを選ぶと別の行動を取る可能性がなくなり十分な探索が行えないからだ。ノイジーネットワークでは探索を行うためにネットワークの重さ自体に正規分布からくる乱数を与えている。学習可能なパラメータによってネットワークは必要に応じて乱数の大きさをコントロールできる。よって、DQNやその他の派生DQNに適用すればε-greedy法を使う必要がなくなり、常に最高価値の行動を選ぶことで必要に応じて探索行動を取れるようになる。
Rainbow :
Rainbowは上述したDQNとその派生の全てを組み合わせたもので、性能が飛躍的に上がっている。また、Rainboe以降も複数のCPUやGPUを使い学習を行う分散強化学習によって学習の収束速度が飛躍的に向上しています。さらに、内発的報酬(intrinsic reward)と呼ばれる報酬の工夫により、極めて難易度の高いゲームにおいても人を超えるパフォーマンスを発揮する手法が発表されています。内発的報酬は赤ん坊の好奇心の自発的に生じる報酬を強化学習に取り入れたものです。
Agent57 :
DQNを開発したDeepMindの強化学習の研究はさらに進み、内発的報酬や記憶能力を加えてさらに発展しました。2020年に発表されたAgent57はDeepMindにおける強化学習の成果を集結したもので、Atari2600の全てのゲーム(57個)で人間のスコアを初めて上回ることができた深層強化学習モデルです。
ボードゲームの進化 :
AlphaGo :
2016年DeepMind社が開発した囲碁AI。技術にモンテカルロ木探索と深層強化学習を組み合わせている。
人間の棋譜データを使った教師あり学習や、複製したAlphaGoとの自己対戦で得た経験を使い深層強化学習を行なっている。
AlphaGo Zero :
名前にゼロがついてる通り、人間の棋譜による教師あり学習は一切行わず、自己対戦によるデータのみで深層強化学習を行なっている。プロの棋譜を使わず、ゼロからの自己対戦のみにも関わらず、AlpaGoを上回る強さ。
Alpha Zero :
Alpha Goの完成形のゲームAI。
こちらも自己対戦のみで囲碁だけでなく、将棋やチェスでもトッププレイヤーを圧倒する性能に到達している。
マルチエージェント強化学習(Multi-Agent Reinforcement Learning : MARL) :
単一エージェントではなく、複数のエージェントによる強化学習のこと。
マルチエージェント強化学習を用いた代表的なゲームAIは以下の2つ。
OpenAI Five :
多人数対戦型ゲームDota2にて、5つのエージェントチームにて、世界トップチームを打倒できるOpenAI Fiveを2018年発表。
5万個以上のCPUと1000個以上のGPUで10ヶ月強化学習を行なった。DNNに系列情報を処理するLSTMを使い、PPOと呼ばれる強化学習のアルゴリズムを使って極めて大規模な計算資源で学習。
AlphaStar :
2019年にDeepMind社はRTSと呼ばれるゲームジャンルに属する対戦型ゲーム、スタークラフト2にて、グランドマスターの称号を持つトッププレイヤを打倒できるゲームAI、AlphaStarを発表した。AlphaStarはResNet、LSTM、Pointer Network、トランスフォーマーなど、画像処理や自然言語処理の手法を多く取り入れたネットワークを使って学習、ゲームプレイを行います。強化学習時にはゲーム理論や、自己対戦の発展系の手法を使うなど、いわば人工知能技術の集大成的なアルゴリズムになっています。
次元の呪い :
扱うデータの次元が高くなるほど、計算量が指数関数的に増えていってしまう現象
###モデルの解釈
Grad-CAM :
Attentionは予測精度向上のための手法がそのまま可視化に応用できるというものでしたが、可視化自体を目的としたGrad-CAMという手法も存在します。これは画像認識系のタスクを対象に、モデルの予測判断根拠を示すために、「画像のどこを見ているか」を可視化します。勾配情報を用いて、予測判断の根拠を可視化をするわけですが、勾配が大きい、すなわち出力値への影響が大きいピクセルが重要だと判断して重み付けをします。この過程でGrad-CAMは画像が低解像度になってしまうという問題がありました。
Guided Grad-CAM :
その問題を解決するために、入力値の勾配情報を用いたGuided Grad-CAMという手法も存在します。
7 AIと社会問題
7.1 AIと社会
AI利活用の本質 :
AIによって経営課題を解決し、利益を創出する点にあります。
ビジネス的成功と技術的成功は車の両輪であり、一方だけを論点とすることはできません。
AIを進めるにあたって :
AIの進歩にはビックデータが必須です。人がアナログで行うプロセスを一足跳びにAIに置き換えようとするのは
謝った方法論です。AI化を進めていくには、IoTやRPAを活用し、アナログ空間で発生している状況をデジタル空間に
送る状況を作らないといけません。デジタル空間では簡単に編集できるので、それを保護するブロックチェーンも
必要となるかも知れません。
AIシステム利活用のサイクル :
・AIプロジェクトを計画する
・データを集める
・データを加工、分析、学習させる
・実装、運用、評価する
・クライシスマネジメントをする
7.2 AIプロジェクトを計画する
1.AIプロジェクト進行のフレームワークや概念の体系化
AIプロジェクトを進める上でプロセスは重要、そういったプロセスのフレームワークや概念も体系化されています。
CRISP-DM(Cross-Industry Standard Process for Data Mining) :
これは6つのフェーズから構成されるデータマイニングのための産業横断型標準プロセスのこと。
効率よく試行錯誤できるよう、6つのステップを臨機応変に行ったり来たりする。
Business Understanding(ビジネス理解)
Data Understanding(データの理解)
Data Preparation(データの準備)
Modeling(モデリング)(手法の選択、モデルの作成)
Evaluation(評価)(結果の評価、プロセスの見直し、次のステップの計画)
Deployment(展開)(本番環境への展開)
2015年に、IBMは新しいプロセスとしてCRISP-DMを拡張したASUM-Dを発表した。
MLOps(Machine Learning Operations) :
MLOpsは機械学習オペレーションの略で、2017年頃に登場した概念です。
AIの課題の1つにモデルを開発する側とそれを運用する側とが、必ずしも円滑に連携できるとは限らないことがあります。
そこでMLOpsの概念が生まれ、これは機械学習の開発担当と運用担当が連携しながらモデルの開発から運用までの
一連を管理する体制を目指しています。MLOpsの概念は開発(Development)と運用(Operation)の両チームの
協業を目指すDevOpsという概念を、機械学習(ML)の分野に適用したことから発祥しました。
2.AIを適用すべきかの検討をする
・AIを運用する必要性を検討する(AIは目的ではなく、手段である)
・利活用による利益予測を立て投資判断を行う(利益が大事。最初はルールベースでも良い)
・データのフィードバックによって継続的にAIが学習できるようにビジネス上も技術上も準備する
・運用を継続しながら推論精度を上げていくという現実的な進め方をする
推論精度を100%を前提としたビジネスモデルを構築すると、多くの場合うまくいきません。
実務上期待できる推論精度を前提として、どう活かすかを検討するのが大切。
3.AIを適用した場合のプロセスを再設計する
BPR(Business Process Re-engineering)
AIを利活用する場合は、AIを利活用するプロセスに変更する必要があるので、BPRが発生します。
BPRは現在の社内の業務内容やフロー、組織の構造などを根本的に見直し、再設計することです。
4.AIシステムの提供方法を決める
従来は納品する形式が多かったですが、AIシステムは「納品」よりも「サービス」の提供として運用するのが向いています。
AIはクラウド上でWebAPIとしてサービス提供する方式や、
エッジデバイスにモデルをダウンロードし、常に最新の状態となるように更新を続けるという方式があります。
クラウドのメリット :
・モデルの更新が簡単
・装置の故障がない
・ハードウェアの保守・運用が不要
クラウドのデメリット :
・通信遅延、サーバーの故障が全てに影響(通信影響が大きい)
・ネットワークがダウンしたら動かない(ダウン時の影響が大きい)
・データのプライバシー
エッジのメリット :
・スピードが速い(リアルタイム性が高い)
・通信量が少ない
・故障の影響範囲が小さい
エッジのデメリット :
・モデルの更新が難しい(手間がかかる)
・ハードウェアの保守・運用が必要(機器を長期間保守運用するひち右葉がある)
5.開発計画の策定
教師データを作るには欲しい出力を定量化する必要がある。熟練工の技などは定量化が難しい可能性がある。
AIのプロジェクト管理は細かくフェーズを分け、モデルの精度に応じて柔軟に方針を修正できる体制が望ましい。
・データを確認する段階
・モデルを試作する段階
・運用に向けた開発をする段階
6.AI導入のプロジェクト体制の構築をする
AIシステムの開発段階から様々なステークホルダーを含めた体制作りが重要 :
・ビジネス観点のあるマネージャー
・UIやUXを担当するデザイナー
・AIモデルを開発するデータサイエンティスト
・法的・倫理的な課題を検討するために開発段階から経営者・法務・経営企画・広報間との連携も重要。
開発段階から以下のようなことを念頭に入れて体制を整える(設計思想) :
Privacy by Design(プライバシー・バイ・デザイン) :
開発段階からプライバシー侵害を予防する考え方。
Security by Design(セキュリティ・バイ・デザイン) :
開発段階からセキュリティを考慮する考え方。
VAlue Sensitive Design(バリュー・センシティブ・デザイン) :
開発段階から価値全般に拝領する考え方。
7.3 データを集める
1.データの収集方法、及び利用条件を確認
AIシステムの開発にはデータの量と質が重要となります。データの収集先には以下のようなものがあります。
・オープンデータセット
・自分で集める
・購入する
オープンデータセット :
企業や研究者が公開しているデータセットです。利用条件が決められている場合もありますが、
本来高いコストで集めないといけないような大量のデータが利用可能で、適切に使えばプロジェクトを早く進められます。
画像分野 : ImageNet, PasaIVOC, MS COCO
自然言語 : WordNet、SQuAD、DBPedia
音声分野 : LibriSpeech
オープンデータが利用できず自分で集めるとき :
・カメラなどのイメージセンサ
・マイクロフォン
・3Dセンサ
などなどプロジェクトのROIを考慮してのデータ収集・蓄積が必要。人間の知覚とセンサは違うので、
知覚をセンサで置き換える場合はよく検討すること。また、センサには人間の知覚にない特性もある。
・3Dセンサ / X線センサ / 赤外線センサ / 電波計測器 / 超音波計測機 / 重量計 / 聴力センサ
2.データの利用条件と制約
データの利用条件に気をつける必要がある。
・著作権法
・不正競争防止法
・個人情報保護法等
・個別の契約
・そのほかの理由
・特許法
研究目的の利用で、成果をラボの外に出さなくても、問題になるケースがあるので注意が必要です。例えば、論文や写真などの著作物を利用するには、①により著作権者から許諾を得るのが原則。しかし、学習用データ作成については、一定要件のもと自由に使える例外規定があります。別の制約もあり、営業機密にあたるデータや限定提供データは②、購買履歴や位置情報などのパーソナルデータは③、ライセンス契約で利用条件が指定されているデータは④、Eメールの内容は⑤など、それぞれデータ利用に制約がかかることがあります。
「金融分野における個別情報保護に関するガイドライン」では、機微情報について取得・利用・第三者提供のいずれも原則禁止とされており、個人情報保護法における要配慮個人情報の取扱い原則よりも厳しい規律となっています。
日本の著作権法は機械学習パラダイス? :
日本の著作権法では、「情報解析の用に供える場合」に著作物を利用することが、営利・非営利を問わず適法とされており、世界的に見ても先進的と言われています。ただし、「著作権物の利益を不当に害する」場合はその限りではないとただし書きがあります。
3.学習可能なデータを集める
訓練データを収集する際には以下の3つ気をつける。
・データの偏りをなくす(頻度が極端に少ないクラスなど) :
オープンデータセットのように大量のデータなら多少偏りがあろうともある程度の精度が上がるかもしれないが、
自身でデータを集める場合など、十分な量のデータを集めるのが難しい場合など、その偏りはクリティカルなものになる。
・データの網羅性(少ないデータでも転移学習は可能だが限界がある) :
転移学習などを利用したら、ある程度はデータの数が少ない状況に対する精度が保証はされるが、
それでもやはり十分な制度の確保は難しいです。可能な限り広い状況を網羅できるようにデータを準備しておく必要があります。
・データの質(必要なデータがない、ノイズが多いなど) :
いくら大量のデータを集めようとも、そのデータ内に認識に必要となる情報がノイズで殆ど消えていたり、
そもそも含まれていなかったりすると、そこからの学習は難しくなります。
4.データセットの偏りに注意する
データには以下のような様々な偏りが生じます。
サンプリングバイアス(不適切な標本抽出による) :
サンプリングバイアスは不適切な標本抽出によって、母集団を代表しない特定の性質のデータがまぎれこんでいること。
現実世界の偏見をそのまま反映してしまう(人種・性別・学歴などへ偏見・バイアス) :
例: 優秀な社員を判断するAIを人事評価に用いて、学歴や性別などの偏見(バイアス)が潜在したまま継承されてしまう恐れ、犯罪者の再販リスクを予測するAIではアフリカ系の人をより高く再販すると予測、現実世界の偏見をさらに増幅させないようにしないといけない。
データがそもそもデータベースに登録されていない事による偏り :
例えば米国で、レイプや強盗、膀胱などの6割が、警察に通報されていないため、データベースに登録されていないと言われています。
その状態で犯罪予測を作ったとしても、その信頼性は疑問視されてしまいます。
欧米主導の共有データセットが学習に使われる :
画像認識において「baby」や「family」と検索するとアングロサクソン系の画像ばかりが表示され、アジア系やアフリカ系が表示されないと指摘されたことがありました。データやアルゴリズムのバイアスに関して検証するためにもシステムの透明性(transparency)や説明責任・答責性(accountability)が開発側に求めれれている。
5.外部の役割と責任を明確にして連携する
他企業や他業種と連携、産学連携が増えてきた理由は以下の組織が必ずしも一致しないから。
・データを保有する組織
・データ分析やアルゴリズム開発に優れた組織
・分析結果やアルゴリズムを利用してビジネス展開する組織
オープンイノベーションな共同開発現場では様々な留意すべき点があります。
・学習や推論の結果、生成される学習済みモデルの性質、効果が契約時に不明瞭な事が多い
・学習済みモデルの性質や効果が学習用データセットによって左右されること
・ノウハウの重要性が高いこと
・生成物について再利用の需要が存在すること
経済産業省は、「AI・データの利用に関する契約ガイドライン」を策定し試行錯誤しながら
モデルを生成するアプローチがしやすい工夫を表している。
アセスメント段階 :
モデルの生成可能性を検証(目的)、レポート等(成果物)、秘密保持契約所等(契約)
PoC段階 :
ユーザが求める精度のモデルが生成できるか検証(目的)、レポートやモデル(成果物)、導入検証契約書(契約)
開発段階 :
学習済みモデルの生成(目的)、学習済みモデル(成果物)、ソフトウェア開発契約書(契約)
追加学習段階 :
追加の学習データで学習をする(目的)、再利用モデル(成果物)、保守運用契約書や学習支援契約書(契約)
学習済みモデルの開発に適した契約形式を採用した上で、認識を合わせ、プロジェクト管理するのが大切で、
こうしたニーズを受け、2018年に「AI・データの利用に関する契約ガイドライン」を策定し、2019年に改訂版が公表。
ガイドラインで示された契約類型は「データ提供型」「データ創出型」「データ共有型」の3つで、それぞれ利用権限や範囲が異なる。
データ提供型 :
データを譲渡し利用を許諾する。契約で利用権限などを取り決める。
データ創出型 :
データの創出に関与した複数当事者間で利用権限を取り決める。
データ共有型 :
プラットフォームを利用したデータの共有
7.4データを加工・分析・学習させる
1.データを加工する
収集した生のデータを加工する必要があります。
・不要な情報を捨てる(必要な部分を取り出す)
・使えいないデータ形式を使えるものに変換する
・複数の場所にあるデータを学習環境で使いやすいように集約する
・画像の前処理、事前加工
アノテーション作成と問題点 :
アノテーションとはあるデータに対する正解データ(メタデータ)を付与すること。
教師あり学習では、アノテーションを作成する必要があり、作成にあたって以下のような問題があります。
・アノテーション定義が曖昧
・アノテーションを人間が行う場合の個人差・感性の違い
・専門的な知識が必要な場合の人材確保
・認知容量を超える規模(手作業・人間の能力や人的コストの限界)
・不注意によるミス
よってアノテーションの要件をできるだけ明確にし、適切な人材に作業を分配し、レビューをプロセスに組み込むことが重要。
要件などはマニュアルを作ってサンプルを提示するなど作業をできる限り明確化しておくと良い。
大量のデータを扱う際は外部に委託するのも選択肢に入れておく。
2.プライバシー等に配慮してデータを加工する
プライバシーに配慮して個人を識別できないように匿名加工情報を使う。
ELSI(ethical, legal, and social implications)つまり、倫理・法・社会的影響をまとめて検討することも重要になっている。経済産業省・総務省・IoT推進コンソーシアムがまとめたカメラ画像利活用ガイドブック等で企業が配慮すべきベストプラクティスを学ぶ。
匿名加工情報 :
特定の個人を識別できないように個人情報を加工して特定性を低減する。このような加工したデータは匿名加工情報と呼ぶ。
匿名加工情報を事業者が作成する際に実施する例。
・個人識別符号の削除
・匿名加工情報の加工方法等情報の漏えい防止
・特定の個人を識別することができる記述等の全部又は一部の削除
ELSI(Ethical, Legal and Social Implications) :
科学技術が及ぼす論理的・法律的・社会的な影響を一体化して検討する試みがELSIです。
ELSIで議論される代表的な課題は、AIシステムにおける責任体制です。
また、情報セキュリティ、そしてデータ扱いの不正行為の防止にも関わっていきます。
カメラ画像利活用ガイドブック :
経済産業省・総務省・lot推進コンソーシアムは、カメラ画像を利活用する企業が
配慮すべきことなどをまとめた「カメラ画像利活用ガイドブック」を公開。
また2019年には「事前告知・通知に関する参考事例集」を公表した。
3.開発・学習環境を準備する
開発する上ではpython自体とライブラリのバージョンを合わせる必要はあります。
・AI開発ではライブラリが豊富なPythonがよく使われる
・Numpy、Scipy、Pandas、Scikit-learn、LightGBM、XGBoost、TensorFlow、PyTorchなど
・環境を切り替えるツールとして、pyenvやvirtualenv、pipenv
・Dockerなどの仮想環境でOSのレベルから環境の一貫性を保つ
・データ分析などでJupyter Notebookがよく使われる
4.アルゴリズムを設計・調整する
AIでは大量のパラメータが自動的に設定されるため、中身がよくわからないブラックボックス化が問題になることがある。できるだけモデルの判断根拠や解釈が説明できるXAI(explainable AI、説明可能AI)の開発が望まれる。おすすめ機能などでも個人の嗜好に偏りすぎるとユーザの視野を狭くしてしまうフィルターバブル現象が生じる。しかし、様々な価値を考慮に入れすぎるとチューニングが難しくなるので、技術的な側面と社会的対応などでバランスを取る多面的な手法を検討する。FAT(fairness, accountability, and transparency)(公平性・説明責任・透明性)という研究領域やコミュニティはプライバシーや公平性の問題に取り組む。例えば、計算機科学の国際学会であるACMが主催するACM FATでは機械学習、法学、社会学、哲学の専門家を交えて様々な研究発表や議論が行われている。
ブラックボックス問題 :
複雑になりすぎて、どの変数が重要であるかなどシステム全体の説明が困難になること。
XAI :
結果の出力だけでなく、そうなった根拠やモデルの解釈まで説明できる説明可能AIであるXAIの開発が進んでいる。
フィルターバブル現象 :
おすすめ機能なので特定の嗜好に基づいて最適化するパーソナライズを強めすぎると、ライフスタリ記事ばかり好んで、
経済ニュースに注意を向けない傾向を助長したり、特定の政治傾向を強化する恐れがあるという現象のこと。
FAT(fairness, accountability, and transparency)(公平性・説明責任・透明性) :
プライバシーや公平性の問題について取り組むコミュニティ。例えば、計算機科学の国際学会である
ACMの主催するACM FATでは、機械学習だけでなく法学や社会学、哲学などの専門家を交えて様々な研究や議論が行われている。
5.アセスメントによる次フェーズ以降の実施の可否検討
アセスメントフェーズではデータの収集・モデルの検討を行う。
・対象データをいつ・どのように取得するか
・同様の問題に関する事例・文献を調査する
・運用での推論時間を考慮してモデルを選択する
最終的にAIを適用すべきか、適用箇所はどこか、ビジネスインパクトはどうかなどをイメージ・シミュレーションし、
当初の目標(精度など)を達成できるか見極める。
6.現場でのコンセプト検証(PoC)を行う
コンセプト検証(PoC)のフェーズでは、実際にAIモデルを作成します。
・実験に使うデータの蓄積
・学習用にデータの加工
・モデルのコードを開発
・パラメータの調整による精度の向上
・問題を整理してデータ収集などにフィードバック
などのプロセスを何度か繰り返し実用可能性を確認する。
精度の向上が難しいなど場合によっては、AIでの認識と人による判断を組み合わせるなどといった工夫を取り入れる。
7.5 実装・運用・評価する
1.本番環境での実装・運用を行う
PoC検証が終え十分に価値を生み出せる見積もりが取れたら本番環境での実装と運用になります。
・推論を行う環境(クラウド、エッジなど)
・データを継続的に蓄積する環境
・再学習のための環境
クラウドを使う場合はサービスをAPI化するなどで共有化したり、サーバの数を増やして負荷の分散などを計画。
エッジの場合は遠隔でモデルを更新する仕組みを考える。故障した場合の運用体制などを考慮する。
2.成果物を知的財産として守る
収集・生成したデータや学習済みモデルは一定の条件を満たせば知的財産として保護できる。
・特許法
・著作権法
・不正競争防止法
著作物は「思想・感情」を「創作的」に「表現」したもの(著作権法2条1項1号)なので数値データは該当しないが、データの集合全体としてデータベースの著作物として保護される可能性がある(同法12条の2第1項)。つまり学習用データセットは保護の対象になり得る。ビッグデータなどはデータ選択の「創作性」が認められる可能性は低い。
営業秘密(不正競争防止法2条6項)は非公知性、有用性、秘密管理性の要件を満たせば保護される。気温データなどは公知なので非公知性を満たしにくい。オープンなコンソーシアムによる共同管理されたデータは秘密管理性を満たしにくい。ただし、2018年の法改正で限定利用データ(同法2条7項)が追加され、コンソーシアムによるデータ共有も保護の対象にはなりました。また、同時にオープンデータに関する運用除外も設けられ、保護と利用のバランスが図られている。学習済みモデルをデータの組み込まれたプログラムとしてプログラムの著作物として保護できる余地がある。ディープラーニングで自動的に生成されるパラメータ値だけを取り出した場合は(創作性などの観点から)著作物になるかどうかは議論が分かれる。学習モデルをデバイスに組み込むならば、暗号化や難読化の処理を施してリバースエンジニアリングを難しくするなどの秘密管理をすることも考慮できる。これによって営業秘密としての保護を受けるのと同様の効果が得られる。「蒸留」(教師役のモデルと同じ出力をするように生徒用のモデルのパラメータを調節すること)に対しては従来の知財の保護は及ばない可能性がある。教師役のプログラムをコピーしているわけではないため著作権法で「蒸留」を禁止できず、パラメータを盗んだわけでもないので不正競争防止法にも触れない可能性がある。以上のように法制度上では判断が難しいのが知的財産権の保護である。実務では関係者間で契約を結び、権利の帰属、利用範囲、禁止行為を明示して一定の解決を図る。「AI・データの利用に関する契約ガイドライン」が重要になってくる。
3.利用者・データ保持者を保護する
個人情報 :
・個人情報を扱う場合、利用目的をできる限り特定する必要がある(個人情報保護法15条1項)。
・実装段階でデータ利用目的が変わるなどしたら原則本人による事前の同意が必要(同法16条1項)で、利用目的を本人に通知か公表しなければならない(同法18条1項)。
・個人データの漏洩防止など安全管理措置を講じなければならない(同法20条)
・従業員の監督義務(同法21条)
・委託先の監督義務(同法22条)
・データ内容の正確性の確保などに関する努力義務(同法19条)
GDPR(EU一般データ保護規則)(General Data Protection Regulation) :
2018年5月にGDPRの運用が開始されました。これはデータ保持者の権利・利益を強化した規則となっています。GDPRは日本に対しても城外適用されるため、EU向けにサービスを提供する日本企業も法的規制を受ける場合があります。GDPRの特色として、あるサービスが特定のユーザに関して収集・蓄積した利用履歴などのデータを他のサービスでも再利用できること、すなわち持ち運び可能であるデータポータビリティの権利を認めている。なお、2019年1月に日本とEUは相互に「個人データの移転を行うことができるだけの十分なデータ保護の水準をもつ」と合意しました。これを十分性認定といいます。
故人のデータ利用に関しては以下の点に配慮する。 :
・実演家や著作者の死後における人格利益の保護(著作権法60条・同法101条の3)
・パブリシティ権(名前、肖像、画像、音声の商業的な利用)
・死後のプライバシー(post-mortem privacy)
・死者に対する宗教的崇拝感情
リクナビDMPフォロー事件 :
リクナビDMPフォロー事件では学生の同意を得ずに内定の辞退率の予測データを利用企業に販売しており問題となった。
・データ主体(学生)の軽視。学生はサービスを作るための仕入れ先。
・優越的地位の濫用。リクナビは寡占状態であり学生は同意を余儀なくされた。
4.悪用へのセキュリティ対策を行う
システムを運用する際に様々な攻撃や想定外の振る舞いを考慮する。(攻撃) :
・データ入力システムへの妨害
・AIモデルの認識を混乱させる敵対的な攻撃(adversarial attacks)
・システムに侵入しデータ・モデルの改竄・盗取や不正な実行
・なりすまし、脆弱性を利用した不正アクセス
対策としては以下が考えられる。(防御) :
・システム稼働を監視
・通信相手の認証
・アクセス制限
・データの暗号化
・データ改変の検知
・問題があった場合の対策手順・仕組みを用意する
ディープフェイクとフェイクニュース :
ディープフェイクはディープラーニングとフェイク(偽物)を組み合わせた造語です。
2018年に話題になったニュースでオバマ大統領がトランプは馬鹿だと発言する映像があがりました。
これは「敵対的生成ネットワーク」を用いて生成されたもので精巧なものでした。
5.予期しない振る舞いへの対処
AIはデータセットのバイアスを受けたり、アルゴリズムの限界があるので解決が難しい課題もあります。いわゆるにアルゴリズムバイアスよって画像分類で誤認識を生じたり、履歴書審査で性別による差別を起きたりします。名誉毀損の発言を取り除いたり、フェイクニュースなど偽りの情報が流れないようにチェックするのはAIには難しいケースもあります。よって、業務によってはAIと人を組み合わせたプロセスを取り入れる必要があるかもしれません。また、物損・人損事故など問題が起きた場合に備えて保険をかけるなどの対策も必要です。
アルゴリズムバイアス例 :
女性に「ゴリラ」とラベル付けをしてしまったり、採用において男性採用率が上がったり、データのバイアスやアルゴリズムにより、解決が難しい課題もあります。機械だけの判断に頼らず、過信しないようなシステム作りが重要です。
6.インセンティブの設計と多様な人の巻き込み
現場の利用者やプロダクトの影響・恩恵を受けるステークホルダーのニーズを把握することが重要。最先端の技術にとらわれず既存業務と調和したデザインを考える必要もある。
7.6 クライシス・マネジメント(危機管理)をする
AIプロジェクトにおいてコーポレートガバナンスや内部統制、予期せぬことが起きた場合の対応などクライシス・マネジメント(危機管理)に備えることの重要性を理解する。
1.体制を整備する
クライシス・マネジメント(危機管理)は以下を主眼とする。
・危機を最小限に抑えて拡大を防ぐ「火消し」
・速やかに平常化と再発防止を目指す「復旧」
一部の企業ではコーポレート・ガバナンス(corporate governance)や内部統制の更新を行い体制整備(外部有識者などで構成される委員会を設置したり監査体制を強化するなど)を行っている。もちろん現場にいる担当者の問題意識の向上が重要。データセットのバイアスから生じる予測の偏りなどが「炎上」を生じることがある。開発者がダイバーシティ(多様性)やインクリュージョン(包括性)を理解する必要がある。開発者たちの性別、人種、経歴などが偏らないようにした方が良い。よって炎上対策とダイバーシティ(多様性)への対策は体制の整備が重要。
2.有事に対応する
近年、ソーシャルメディアの口コミによるクライシスの発生が起きている。初動対応の前に憶測や風評被害が生じる。さらに、マスメディアが不安を煽るケースもある。その後に企業や研究機関の発信を受けても不満を感じやすく炎上しやすい。AIと安全保障・軍事技術に関する議論は日本や海外で行われている。特にAIを軍事利用した自律型致死兵器(Autonomous Weapons Systems、AWS)は人間の介入なしに対象を選定して攻撃を行うので大惨事を招きかねない。
自律型致死兵器に関するもの :
・2015年の人工知能国際合同会議(IJCAI)で非営利団体The Future of Life InstituteはAWS開発の禁止を求める公式書簡を公開した。
・2017年からは国連において自律型致死兵器システム(Lethal Autonomous Weapons Systems、LAWS)の研究開発を禁止すべきだとの議論が特定通常兵器使用禁止制限条約(CCW)の枠組みで開始された。
・2019年1月、日本は人間の関与しない自律兵器を開発しないという立場を表明。
3.社会と対話・対応をアピール
プライバシーやセキュリティの実施状況を公開を通して社会に対して対策のアピールし責任説明を果たすことが重要。個人情報を扱う企業は透明性レポートなどをウェブ上などに公開し透明性を担保するべき。例えばTwitter社やGoogle社を始めとするいくつかの個別企業などは透明性レポートをwebで公開しています。透明性レポートは以下に関する統計を含む。
・ユーザーからの情報開示請求や削除請求
・政府からのコンテンツの削除要求
日本では、業界として自治を行う一般社団法人セーファーインターネット協会(safer internet association、SIA)が透明性レポートの公開やサイトパトロールを行なっている。削除要請のあった違法・有害情報の9割以上が削除された実績を持つ。
4.指針を作成し、議論を継続する
個人、企業、政府などが拠り所とする原則や指針が必要であり、以下のように国際機関、政府、企業、アカデミアでAIガバナンス体制に関する議論が起こっている。
・2016年にAmazon、Google、Facebook、IBM、MicrosoftなどアメリカIT企業を中心として、PAI(Partnership on AI)が組織されました。
・2017年2月にNPO法人Future of Life Instituteが、安全性の検証や透明性の確保など23項目からなる「アシロマAI原則」を公開。
・2019年4月に学術団体IEEEが「倫理的に調和された設計」を公開。
・2019年4月に欧州委員会が「信頼性を備えたAIのための倫理ガイドライン」を公開。
・2019年5月に中国が「北京AI原則」を公開。
・2019年5月に日本内閣府が「人間中心のAI社会原則」を公開。
・2020年2月に欧州委員会が「AI白書」(AIの規制の枠組みの方向性)を公開。
・2020年1月にアメリカ政府が「民間部門におけるAI技術の10項目の原則」を公開。
このほか、シンガポールやドバイなどは具体的なセルフチェック項目やベストプラクティスを含んだ報告書を公開している。
5.プロジェクトの計画に反映する
AIシステムは作ったら終わりではなく、得た教訓を運用の改善やシステムの改修、次の開発へと循環させていくサイクルが重要。想定外の事故を起こさなためにも、開発段階から以下のようなことを考えていくことが求められる。
・このAIシステムで支援や影響を受けるのは誰か
・想定外のユーザーはいないか
・判断や最適化を行う時の基準は何か
・判断や最適化などを機械で行うことの正当性はどんな根拠に基づいているのか
・AIシステムやサービスを、現在の文脈以外に悪用される危険性はあるか、それを防ぐ対策は取られているか
7.7 AI活用事例と話題(おまけ)
最近のAI活用事例 :
コロナ :
COVID-19用のワクチンを開発したPfizer、Modernaの両社では、AIの活用が早期の開発、臨床試験、実用化に結び付いた。
Amazon Go :
無人コンビニ。
AIの話題 :
Vision Transformer :
2021年はVision Transformerが学会をにぎわした。これは自然言語用に設計されたTransformerを画像分野に応用するという試みである。自然言語処理では穴埋め問題で学習するが、では画像ではどうするのか。ジグゾーパズルを組み立てるかのように画像の穴埋めを行う。
AIの導入・運用に向けての取り組み :
AI、機械学習の導入に関しては課題も多い。まず、大量のデータをどのように扱えばいいのか、そもそもデータが集まるのかを検討する必要がある。そしてデータが集まったあとには高度な専門的知識と経験をもった人材がデータに合わせて個別のシステムを作り上げることになる。これではどの企業でも簡単に導入するわけにはいかず、結果として取組が進まないという課題が生じている。ここではAIの導入・運用を容易にするための新しい取組を示す。
API化 :
自然言語処理に関わるAIタスクは毎回一からシステムを作り上げる必要がある。たとえば少しのタスク追加、もしくは削減を行う場合でも一から再設計する必要がある。これに対して、自然言語処理で使用するタスクに対応するAPIを作成することで、事実上すべての自然言語処理関係のタスクをAPIの呼び出し・組み合わせで構築することが可能になった。たとえばOpenAIでは自然言語処理系AIの汎化の例としてGPT-3(1,750億のパラメータを調整した自然言語処理系)にアクセス可能となっている。さらにGPT-3を使用する/予定のある商用アプリケーションのショーケースも公開されている。
AutoML(Automated Machine Learning) :
機械学習には多くの作業が必要なため、活用が進みにくい状況である。AutoMLでは機械学習の各プロセスを自動化してエンジニアの生産性を向上させること、また誰でも機械学習を使えるようになることを目指した技術である。究極的な目標は、生データを与えれば自動的に処理を行い、ユーザーにとって有用な結果を出すことである。これにより、企業内のデータサイエンティストの不足を補ったり、AIの知識がない人材でも機械学習による成果をえたりすることが可能となる。具体的にはAutoMLでは大きく「ハイパーパラメータチューニング」「モデル選択」「特徴エンジニアリング」の3点を行う。
8. AIに関する法律関係
自動運転に関する法律
自動運転には、その度合いに応じてレベルが定義されており、アメリカのSAEインターナショナルによって定義された「SAE J 3016(2016)」が世界共通基準となっています。
自動運転レベル :
レベル0 / 運転自動化なし / 運転者 :
運転者が全ての運転操作を実行する
レベル1 / 運転支援 / 運転者 :
システムがアクセル・ブレーキまたはハンドル操作のいずれかを条件下で部分的に実行
レベル2 / 部分運転自動化 / 運転者 :
システムがアクセル・ブレーキまたはハンドル操作の両方を条件下で部分的に実行
レベル3 / 条件付運転自動化 / システム(運転者: 作業継続が困難な場合) :
システムがすべての運転操作を一定の条件下で実行
作動継続が困難な場合は、システムの介入要求等に運転者が適切に対応
レベル4 / 高度運転自動化 / システム :
システムがすべての運転操作及び作動継続が困難な場合への対応を一定の条件下で実行
レベル5 / 完全運転自動化 / システム :
システムがすべての運転操作及び作動継続が困難な場合への対応を条件なしで実行
日本の自動運転の法律現状 :
日本では2020年4月に、道路交通法と道路運送車両法が改正され、公道の走行が可能となったレベル3の自動運転では、高速道路など一定の条件の下であれば、システムからの運転引き継ぎを要請されている時などを除き、運転者がハンドルから手を離してシステムに運転を任せれるようになりました。2025年を目処にレベル4の完全自動運転システムの実用化が見込まれています。
※アメリカのカリフォルニア州では、すでに無人自動運転車の走行が認められている。 :
スマホなどの操作はレベル3から :
レベル3になると、監視義務を一部解かれ、自動走行中にカーナビやスマホを操作することが可能だ。ただ、運転態勢に戻れるようにしておく義務が発生するため、居眠りや飲酒は禁止されている。しかし、現在の法令ではレベル3が適用できるのは、「高速道路の同一車線で低速走行時」に限定。ホンダの新型車「レジェンド」でも「レベル3」機能の出番は「高速道路での渋滞時」のみとなる。
道路交通法がどう改正されたのか? :
自動運転の自動車が公道を安全に走行できるように改正された主なポイントは3つ。
1.自動運転装置による走行も「運転」と定義
2.自動運転装置を使う運転者の義務
3.作動状態記録装置による記録を義務付け
(1)自動運転装置による走行も「運転」と定義 :
自動運行装置とは、自動運転システムのことで、これまで運転者が担っていた認知、予測、判断、操作の全てを代替できる機能を持ち、その作動状態を記録する装置を備えたものです。この自動運行装置を使い、公道を走行することも「運転」と決められました。この定義が追加されたことで、レベル3の自動運転ができるようになりました。
(2)自動運行装置を使う運転者の義務 :
自動運転中に、車種ごとに定められている条件から外れてシステムから警報が鳴るなどした場合は、直ちに運転者は通常の運転に戻らなければなりません。そのため、直ちに通常の運転に戻れないと考えられる飲酒や居眠りは認められていません。なお、万が一、自動運転中に事故・違反があったとしても、必ずしも運転者が免責されるとはかぎりません。
(3)作動状態記録装置による記録を義務付け :
車両の保有者等は自動運行装置の作動状態を記録し保存することが義務付けられます。これは、万が一、道路交通法令に反する動きをしたことなどを現場の警察官が認めた場合に自動運行装置が作動中か否かを確認することで、交通の危険の防止などに役立てられます。また、警察官から記録の提示を求められた場合には、この記録を提示する必要があります。
道路運送車両法どう改正されたのか? :
1.自動運行装置の定義を決め、保安基準対象に追加 :
自動運転システムとなる「自動運行装置」を「プログラムにより自動的に自動車を運行させるために必要な、自動車の運行時の状態及び周囲の状況を検知するためのセンサー並びに当該センサーから送信された情報を処理するための電子計算機及びプログラムを主たる構成要素とする装置」であり、「自動車を運行する者の操縦に係る認知、予測、判断及び操作に係る能力の全部を代替する機能を有し、かつ当該機能の作動状態の確認に必要な情報を記録するための装置を備えるもの」と定義し、保安基準対象装置に追加した。
2.整備範囲を拡大し、「特定整備」に名称変更。自動運転に関するプログラム改変も許可 :
自動車技術の電子化・高度化を背景に、通信を活用したソフトウェアの更新による自動車の性能変更が可能となっていることから、従来の分解整備の範囲を自動運行装置などの先進技術に関する整備まで拡大し、名称を「特定整備」と変更したほか、自動運行装置などに組み込まれたプログラムの改変による改造などに係る許可制度も創設した。
3.自動運行装置に対する機能要件の盛り込み、車両停止装置やモニタリング機能をつける。 :
保安基準や施行規則の一部も改正され、自動運行装置の要件として、走行環境条件を満たさなくなる際に適切にドライバーに運転操作を促し、ドライバーが従わない場合は安全に車両を停止させる機能や、ドライバーを監視するドライバーモニタリング機能、冗長性を備えることなどが盛り込まれた。
4.速度や作動状態記録の補完概要などの取り決め :
高速道路などにおける低速自動運行装置を備える自動車の技術基準として、システムが作動する最高速度を時速60キロと定め、走行車線内での走行を維持することなども記載されている。作動状態記録装置は、システムの作動状況変化や引継ぎ要求が発せられた時刻、オーバーライドを行った時刻などを記録することとし、保存期間は6カ月間または2,500回分と定められた。
自動車業界の重要協調分野 :
自動車業界は企業が独自に開発するには難しく、協調が必要と考えている重要10分野がある。
①地図
②通信インフラ
③認識技術
④判断技術
⑤人間工学
⑥セーフティ
⑦サイバーセキュリティ
⑧ソフトウェア人材
⑨社会受容性
⑩安全性評価
ドローンに関する法律
ドローン規制単独の法律は存在していなく、最も重要な法令は以下の2つとなります。
・航空法(国土交通省)
・小型無人機等飛行禁止法(警察庁)
ドローンのレベル :
レベル1 無人、有人地帯を目視内での操縦による飛行可能 :
見える範囲で手動操作する一般的なドローン利用の形態を指す。農薬散布や映像コンテンツのための空撮、橋梁や送電線といったインフラ点検などがこのレベルに該当する。
レベル2 無人、有人地帯を目視内での自律飛行可能 :
見える範囲で自動運転機能を活用した飛行を行うものを指す。例としては、空中写真測量やソーラーパネルの設備点検などが挙げられる
レベル3 無人地帯を目視外での操縦による飛行と自律飛行可能(補助者の配置なし) :
住民や歩行者らがいないエリアにおいて目の届かない範囲まで飛行する形態を指す。離島や山間部への荷物配送、被災状況の調査、行方不明者の捜索、長大なインフラの点検、河川測量などがこれに該当する。
レベル4 有人地帯を目視外での操縦による飛行と自律飛行可能(補助者の配置なし) :
有人地帯(第三者上空)、市街地などを含めたエリアにおいて目の届かない範囲まで飛行する形態を指す。都市の物流や警備、発災直後の救助、避難誘導、消火活動の支援、都市部におけるインフラ点検などがレベル4として考えられる。
航空法でのドローン規制 :
航空法でのドローンの規制を最小限にまとめると以下の3つとなります。
1. 航空法の規制対象となるドローンは総重量200g以上 :
飛行に必要なバッテリー等付属部品も含む総重量が200g以上となるドローンは航空法の規制対象となります。
(航空法2条22号と5条2項で規定)
2. 使用時のルール、飛行禁止条件や禁止場所(航空法132条で規定) :
[1] アルコール又は薬物等の影響下で飛行させないこと
[2] 飛行前確認を行うこと
[3] 航空機又は他の無人航空機との衝突を予防するよう飛行させること
[4] 他人に迷惑を及ぼすような方法で飛行させないこと
[5] 日中(日出から日没まで)に飛行させること
[6] 目視の範囲内で無人航空機とその周囲を常時監視して飛行させること
[7] 人(第三者)又は物件(第三者の建物、自動車など)との間に国土交通省令で定める距離(これが30m)を保って飛行させること(航空法施行規則236条の4で規定)
[8] 祭礼、縁日など多数の人が集まる催しの上空で飛行させないこと
[9] 爆発物など危険物を輸送しないこと
[10] 無人航空機から物を投下しないこと
3. 空港周辺上空、人口集中地区の上空、これら以外の上空でも高度が150m以上を飛行させたい場合は国交省の許可が必要 :
飛行機の運行に影響を与える地域、墜落や部品の落下により人や民家に危害をおよぼす場合、
150m以上の高度での飛行は事前許可が必要と記載されています。(航空法施行規則174条で規定)
小型無人機等飛行禁止法でのドローン規制 :
この法律の正式名称は「重要施設の周辺地域の上空における小型無人機等の飛行の禁止に関する法律」です。主な規制を以下に挙げます。
1. 小型無人機等飛行禁止法の規制対象となるドローンの重量規制がない :
重量規制ですが小型無人機等飛行禁止法では定義されていません。つまりドローン、ここでは小型無人機等の重量によらず規制対象となります。航空法では 200g 以上のドローンが規制対象でしたが、小型無人機等飛行禁止法では重量規制がなくなっていることに注意が必要。
2. 飛行禁止区域が具体的に明記されており、それらに対して周囲300mの地域を飛行禁止とする :
(小型無人機等飛行禁止法2条で場所明記、あけるべき距離は同法3条で規定)
[1] 国の重要な施設等
イ 国会議事堂、議員会館など
ロ 首相官邸、公邸
ハ 対象危機管理行政機関
二 最高裁判所の庁舎
ホ 皇居、御所
へ 対象政党事務所
[2] 対象外国公館等
[3] 対象防衛関係施設
[4] 対象原子力事業所
ただし例外的に以下の場合は飛行は可能ですが、管轄の警察を経由して各公安委員会の許可を取得する必要があります :
- 対象施設の管理者に同意を得た場合
- 飛行させる土地の所有者若しくは占有者か、その同意を得た者が飛行させる場合
- 国又は地方公共団体の業務で飛行させる場合
電波法でのドローン規制 :
電波法ではドローンで扱う無線周波数に対する規制があります。ドローンに限らず、無線通信を免許なしで利用可能な周波数帯としてISMバンドというものがあります。I (Industry:産業)、S(Science:科学)、M(Medical:医療)の頭文字をとってISMバンドと呼ばれており、国際電気通信連合(ITU)によって国際的に確保されている周波数帯のことです。ドローンの無線通信によく使われるISMバンドに 2.4GHz帯がありますが、この周波数帯以外のものは免許が必要な場合が多いです。他にドローン本体技術適合試験を通過しているかどうかが重要事項になります。本体に技適認証のシールが貼られているのもののみ、日本国内で利用可能となり管轄は総務省になります。
地方自治体によるドローンの規制(東京の例) :
地方ごとによ自治体のドローン規制も存在します。全てを上げることはできないので東京都だけ紹介します。東京都や24区の条例で規制されている内容。
・200g 未満のドローンも対象
・都立公園での飛行を全面禁止
・足立区では屋内である区立体育館で利用する場合に速度10km/h未満、操縦者は国交省が公認する団体からの技能証明が必要
ドローン最近の動向や法改正 :
2019年ラグビーワールドカップ日本大会および2020年東京五輪・パラリンピックにて、会場施設や防衛(自衛隊)施設上空での飛行が禁止される。2020年6月の航空法改正により飛行目的でドローンを所有する場合は登録が義務付けられることになりました。登録すると国から番号が割り当てられ自動車のナンバープレートのような表示義務も発生します。
2021年ではドローンはレベル3まで許可されています。2021年6月の法改正では国土交通省がレベル 4の実運用を見据え、以下の 2 つの観点から認証を行う制度が盛り込まれています。
機体認証:機体の安全性を認証
技能証明:操縦者の技能を証明
この2つの認証、証明が行われたからといって即レベル4 が認可されることはないですが大きな進歩です。残っている課題としては事故発生時の対応方法や法的整備、運行管理ルール等があげられます。
その他の法律
AIが生成した創造物に関する、日本の知的財産制度上の取扱い :
学習済みモデルの利用者に創作意図があり、かつ創作的寄与がある場合において著作物性が認められる。
不正競争防止法等の改正 :
データの利活用等を推進する環境整備が進んでいる。主要な措置事項として、ID・パスワードなどにより管理しつつ相手方を限定して提供するデータを不正取得するなどの行為を新たに不正競争行為に位置付けている。
限定提供データ :
2018年に一部を改正し、2019年7月に施行された。この改正によって、「業として特定の者に提供する情報として電磁的方法により相当量蓄積され、及び管理されている技術上または営業上」が保護されるようになった。このような情報を「限定提供データ」という。
匿名加工情報 :
匿名加工情報であれば、一定の条件下で本人同意なく事業者間でやりとりが可能となる(個人情報の保護に関する法律第2条)。匿名加工情報として扱うには「特定の個人を識別すること及びその作成に用いる個人情報を復元することができないようにするため」加工を行う義務がある(個人情報の保護に関する法律第36条)。
匿名加工情報を事業者が作成する際に実施する例 :
・個人識別符号の全てを削除
・匿名加工情報の加工方法等情報の漏えい防止
・特定の個人を識別することができる記述等の全部又は一部の削除
オープンデータへの取り組みが義務 :
学習用のデータ等は大量のデータを効率よく収集する必要がある。官民データ活用推進基本法により、国及び地方公共団体はオープンデータに取り組むことが義務づけされた。官民データ活用推進基本法(平成28年法律第103号)で、オープンデータへの取り組みが義務付けられ、オープンデータへの取り組み組により、国民参加・官民協働の推進を通じた諸課題の解決、経済活性化、行政の高度化・効率化等が期待されている。
民間企業のAI開発 :
民間企業のAI開発時に用いられる契約の1つに準委任契約があり、特にシステム開発における一部の開発を委任する場合はSES契約という。
CBPR(一般データ保護規則)の9つのプライバシー原則 :
①被害の防止
②通知
③収集の制限
④個人情報の利用
⑤選択の機会提供
⑥個人情報の完全性確保
⑦安全管理措置
⑧アクセスと訂正
⑨責任
9. AIに関する倫理関係
人間中心のAI社会原則 :
3つの基本理念 :
・人間の尊厳が尊重される社会(Dignity)
・多様な背景を持つ人々が多様な幸せを追求できる社会(Diversity&Inclusion)
・持続性ある社会(Sustainability)
7つのAI社会原則 :
・人間中心の原則(人間が社会の中心であり、AIはあくまでも人間の補助)
・教育・リテラシーの原則(AIを活用できる人材の育成)
・プライバシー確保の原則(パーソナルデータの保護と活用のバランスが大事)
・セキュリティ確保の原則(AI自体のセキュリティを求めるもの)
・公正競争確保の原則(特定の企業や国に利益が集中しすぎないように想定)
・公平性、説明責任及び透明性の原則(差別はしてはならない、そしてAIのデータなど十分に説明する責任がある)
・イノベーションの原則(データを独占することなく有意義に利用できる環境作り)
AI戦略2019(日本) :
「人間尊重」「多様性」「持続可能」の3つの理念を掲げ、Society5.0を実現し、SDGsに貢献
3つの理念を実装する4つの戦略目標を設定 :
・人材の育成(AIに関する人材の育成強化)
・産業競争力の強化(実世界の産業にAIを応用し競争力を上げる)
・技術体系の確立(多様性を内包した持続可能な社会を実現するための技術体系を確立する)
・国際的視点(AI関連の教育や産業展開は国内で完結させず、国際的な視点で進めていく)
具体的な実施目標の一部 :
・AIやデータサイエンスを理解して各専門分野で活用できる人材を年間約25万人の排出を目標。
・AIやデータサイエンスを駆使して国際的に活躍できるエキスパート人材を年間約2,000人の輩出を目標。(トップを100人)
・高校過程で2022年から「情報Ⅰ」を必修とすることを掲げている。
・数理、データサイエンス、AIを育むリカレント教育を多くの社会人、年に約100万人実施。
・留学生がデータサイエンスやAIなどを学ぶ機会を促進
AI-Readyな企業のレベルの昇順 :
- AI-Ready化着手前
- AI-Ready化初期段階
- AI-Ready化進行
- AI-Ready化からAI-Powered化へ展開
- AI-Powered企業として確立、影響力発揮
AI戦略2021(日本) :
AIの社会実装によって想定されるリスク4分類(総務省) :
・AI自身のリスク
AIのアルゴリズムがブラックボックス化し、人間の制御ができなくなってしまう。
・AIに関わる人間のリスク
人間がAIを利用した無差別殺人を行う。
・社会的負のインパクト
AIが人々の職を奪ってしまう。
・法律や社会のあり方
自動運転車が引き起こした事故は誰が責任を追うのか。
各国のAI活用経済成長戦略 :
・日本:新産業構造ビジョン(経済産業省が2017年5月に取りまとめた日本の戦略)
・英国 : RAS2020戦略
・ドイツ:デジタル戦略2025
・中国:インターネットプラスAI3年行動実施法案
米国政府AIリスクに対する発表 :
・2016 年10 月 "PREPARING FOR THE FUTURE OF ARTIFICIAL INTELLIGENCE" を発行
・同年 "THE NATIONAL INTELLIGENCE RESEARCH AND DEVELOPMENT STRATEGIC PLAN"を発行
・2016 年 12 月"ARTIFICIAL INTELLIGENCE AUTOMATION, AND THE ECONOMY" を発行
などで、これから表面化するであろうリスクへの対応策を事前に協議している。
AI関連の主要国際会議 :
ICML (International Conference on Machine Learning) :
NeurIPSと並んで機械学習の世界トップの国際会議会議です。
NeurIPS (Neural Information Processing Systems) :
ICMLと並び機械学習では世界最高峰の国際会議です。
ニューラルネットワーク技術を主にテーマとしている学会であるが、近年は機械学習をテーマにした発表が増加している。
AAAI (Association for the Advancement of Artificial :Intelligence)
人工知能に関する研究を広く扱っている世界トップレベルの国際会議です。
IJCAI (International Joint Conference on Artificial :Intelligence)
IJCAIも人工知能に関する研究を広く扱っている国際会議でAAAIと並んで世界でもトップレベルの国際会議です。
ICLR (International Conference on Learning Representations) :
ICLRは2013年にできた新しい国際会議ですがそのレベルは世界トップレベルです。
表現学習がメインの学会なので主にディープラーニングの論文を扱っています。
AISTATS (International Conference on Artificial Intelligence and Statistics) :
その名の通り人工知能と統計学を扱っているトップ国際会議です。
UAI (The Conference on Uncertainty in Artificial Intelligence) :
機械学習の中でもベイズよりの論文が多い学会で、こちらも世界でトップレベルの国際会議です。
COLT (Conference on Learning Theory) :
COLTは機械学習の中でもゴリゴリ理論依りの論文を主に扱っている国際会議のトップです。
CVPR(Conference on Computer Vision and Pattern Recognition) :
画像認識を主にテーマにしている世界トップレベルの学会。
AIの作成・利活用促進のための知的財産権の在り方 :
日本政府が2017年に新たな情報財検討委員会報告書を公表した報告書。
学習用データ、学習済みモデル、AI生成物における議論がされている。
2018年時点でのAI関連の特許出願数 :
1位 中国(13840), 2位 アメリカ(10692), 3位 韓国(2356), 日本(1197)
2018年時点でのAI関連の論文発行数
1位 中国, 2位 アメリカ, 3位 インド , 日本
透明性レポート :
多くの企業が利用者のデータを蓄積していますが、利用者のデータがどのように収集され、どのように活用されているのかを示したのが透明性レポートです。実施状況を公開することで、透明性を担保し、説明責任を果たすことに繋がります。多くの大手IT企業は公表しています。
XAI(Explainable AI:XAI) :
説明可能なAI(Explainable AI:XAI)とは、予測結果や推定結果に至るプロセスが人間によって説明可能になっている機械学習のモデルのこと、あるいはそれに関する技術や研究分野のことを指す。米国のDARPA(Defense Advanced Research Projects Agency : 国防高等研究計画局)が主導発端となり広まった。
PAI(Partnership on AI) :
2016年にAmazon、Google、Facebook、IBM、MicrosoftなどアメリカIT企業を中心として、AIの研究や検証、実動におけるベストプラクティスを開発したり共有したりすることを目的とした非営利団体PAIを創設。
OpenAI :
2015年に設立された人工知能を研究する非営利団体であり、イーロン・マスクらアメリカの起業家や投資家などが参加し、2016年にOpenAIGymの提供を始めた。
OpenAIGym :
自分で製作した強化学習用アルゴリズムを試験できるAIシュミレーションプラットフォーム。
IEEE Spectrum :
世界最大の工学と応用科学の学会であるIEEEのエンジニア向け論文誌「Top Programming Languages」のランキング1位の言語としてpythonが上がっている。
情報銀行とPDS (Personal Data Store) :
PDSなどのシステムを活用して個人のデータを管理するとともに、個人の指示または予め指定した条件に基づき、個人に代わり妥当性を判断の上、データを第三者に提供する事業及び事業者を情報銀行という。
サンプリングバイアス :
不適切な標本抽出によって、母集団を代表しない特定の性質のデータがまぎれこんでいること。
ディープフェイク :
GANなどの深層学習技術を用い合成され、偽物とは容易に見抜けないほど作り込まれた合成メディア。
ヘイトスピーチ :
AIに関して倫理的な問題となったMicrosoftのおしゃべりぼっとであるtayは悪用され、ヘイトスピーチを頻発するようになった。
10. 索引用の用語集(おまけ)
TensorFlow :
Googleが開発したpythonのディープラーニング用のライブラリである。これは大規模な GPU (Graphics Processing Unit) 環境での高速化に特徴があると言われている
CNTK :
Microsoft 社が提供するpythonのディープラーニング用のライブラリである。
Caffe :
Berkeley Vision And Learning Center が提供するオープンソースのディープラーニング用ライブラリである。
Chainer :
日本のPFN社(Preferred Networks)が開発したディープラーニング用のライブラリである。特徴であるDefine by Runは高く評価されている。Define by Runの特徴は、計算グラフの構築と同時にデータを流して処理を並行して実行する方式でデータ構造によってモデルを変えやすい。2019年12月、開発元のPFN社はChainerから、Facebookが主導開発しているPytorchに移行すると発表した。
Pytorch :
pythonのディープラーニング用のライブラリである。最初はFacebookの人工知能研究グループAI Research lab(FAIR)により開発された。PyTorchはフリーでオープンソースのソフトウェアであり、修正BSDライセンスで公開されている。
scikit-learn :
機械学習全般に強いライブラリ。
機械学習のライブラリの1つで複数のトイデータセットが入っている。
・アヤメの品種データセット
・ボストン市の地区別住宅価格データセット
・数字の手書き文字データセット
・糖尿病患者の診断データセット
・生理学的特徴と運動能力の関係のデータセット
scipy :
scipyライブラリは、Pythonで配列や行列の演算などを扱うときに用いられるnumpyライブラリを内包しているため、
統計などの高度な数学的計算を簡単に実行することができます。
seaborn :
データの可視化(グラフ作成)を行うライブラリ。
Numpy :
線形代数の計算に強いライブラリ
OpenCV :
当初Intelが開発した画像認識ライブラリであり、2006年に1.0がリリースされ、2015年には3.0がリリースされている。
Colaboratory :
Googleが提供する、ブラウザからPythonを記述し実行できるサービス。
PyCharm :
JetBrainsが提供している、Pythonに特化した統合開発環境。
Jupyter Notebook :
厳密には開発環境ではありませんが、1行ずつ実行しデータと結果を確認できるため、データを分析する用途で広く使われており、AI開発において多くの場面で利用できます。
Fashion-MNIST :
学習用に60,000枚、テスト用に10,000枚用意された10種類に分類できる衣類品画像のデータセット。
CIFAR-10 :
学習用に50,000枚、テスト用に10,000枚用意された10種類に分類できる物体カラー画像(乗り物や動物)のデータセット。
CIFAR-100 :
学習用に50,000枚、テスト用に10,000枚用意された10種類に分類できる物体カラー画像(乗り物や動物)のデータセット。CIFARはこのように10種類及び100種類に分類できる。
Googleの猫 :
Google社が2012年に大量の画像データから「猫」を抽出し、その隠れ層では猫の概念と思われる画像が抽出された。これにより、コンピュータがディープラーニングにより意味を理解できたと考えられた。
モラベックのパラドックス :
人間にとって簡単なことほど機械がやるのは難しいと呼ばれる考え。
End-to-End Learning :
ディープラーニングはロボット学習への応用も盛んに行われており、大きな影響をもたらせた。これはある一連の動作を学習する際に従来は一つ一つの動作をステップバイステップで学習していたものを、一つのネットワークとして表現することで全動作を一気に学習することが可能になったのが非常に大きいとされている。
常識推論 :
自然言語処理においては学際的な研究が進められている。その一つとして、機械が知能を持っているか否かを判断することを目的とした知能テストが多数考案されており、常識推論タスクとして注目を浴びている。
COPA :
南カリフォルニア大学のAndrew Gordonの研究グループが提案した COPA (Choice of Plausible Alternatives)これは「知能を持つ」ことが事象間の因果関係を理解することだと捉え、これを計測しようとしたものである。
WAC :
Hector Levesqueの研究グループが定式化した 「統語的手がかりだけでは解けないような照応解析の問題が解けること」が知能を持つこととしてこれをテストの形にした。現在このテストはAIのトップ会議でコンペティションが開かれるなどしており、まだまだ精度は低いものの注目を浴びつつある。
分析に使われる用語 :
ヒストグラム :
ヒストグラムはある幅にどれくらいのデータ数があるかを可視化したい場合に使用する。おおよそ、だいたい、といった正確でなく大まかな傾向を知るために使う。
散布図 :
散布図は縦軸と横軸の二つの特徴量によりデータの点を打つ図表である。散布図を使用すると2変数の相関を確認することができる。
決定係数 :
重回帰分析には決定係数というものがあり、決定係数とはモデルの予測値と実際の値のズレによって決まる。ズレが小さいほど決定係数は1に近づき良いモデルと考えられる。
ハイパーパラメーターに関する知識 :
機械学習やディープラーニングでは学習を行う際に人手で決めるパラメータが多く存在する場合がある。これをハイパーパラメータと呼び、モデルの学習に大きな影響を及ぼす。
グリッドサーチ :
ハイパーパラメータを求める方法の1つで、適切だと考えられるパラメータを複数用意し、それらの値の組み合わせを全通り総当たりで行い、最も良いハイパーパラメータを探す方法である。
ランダムサーチ :
考えられるパラメータの範囲を決め、ランダムにパラメータを組み合わせて学習させ、最も良いハイパーパラメータを探す方法である。
誤差関数を二乗誤差としたときの回帰のモデルの汎化誤差 :
誤差関数を二乗誤差としたとき、回帰のモデルの汎化誤差はの三つの要素に分解できる。
バリアンス(variance) :
モデルが複雑になりすぎて過学習の状態にある時に高くなる。
バイアス(bias) :
逆に単純すぎて未学習の状態にある時に高くなる。
ノイズ(noise) :
データ自体に混入しておりモデルの種類や学習方法を工夫しても取り除くことは困難。
Deep Blue :
1997年にIBMが開発した人工知能でチェスの世界チャンピオンを破った。
Ponanza :
深層学習を用いた将棋AI。
DeepFace :
Facebookの研究グループらが2014年に公表したディープラーニングを用いた顔認識システム。
GNMT :
Googleは2016年からディープラーニングを用いたGNMTを用いて、Google翻訳の精度を向上させた。現在機械翻訳の精度が高いとして評価が高く、従来のモデルに比べて言葉の流麗さが増したと言われている。
AlphaFold :
Alphabet傘下のDeepMindは、AIを使ってタンパク質の構造を見出し新薬開発に活かす、AlphaFoldを開発し、CASP13コンテストで優勝した。
KLダイバージェンス :
・非負の値をとる
・2つの確率分布が同じ場合は値は0となる
・2つの確率分布がどの程度にているかを表す尺度である
(比較する確率分布は正規分布に限らない)
WER :
音声認識技術の一般的な評価尺度として用いられる。
この値をいかに下げるかということを目標に研究開発競争が繰り広げられてきた。
この値はディープラーニング技術の向上により飛躍的な精度向上を果たしている。
MAML :
メタ学習のアルゴリズムの1つ。特徴は以下。
・更新後の目的関数の値の和が小さくなるように初期パラメータを決定する。
・最適化処理において、勾配の勾配を求める。
・回帰、分類、強化学習等のタスクに適用可能である
OCR :
印刷された文字や手書きの文字を画像として読み込み、テキストデータ化する技術。ディープラーニングを活用する取り組むが進んでいる。
LOD :
LODは、ウェブ上でコンピュータ処理に適したデータを公開・共有する方法であり、wikipediaをLOD化したDBpediaも作られている。
MAAS :
「ICTを活用してマイカー以外の移動をシームレスにつなぐ」概念
Define-by-Run :
ニューラル設計を動的に行うことができる。計算グラフの構築と順伝播処理の実行が同時に行える。
Adversarial Examples :
人間では認識しづらいが、AIが認識を誤るような情報を加えたデータのこと。
Google Scholar :
学術論文の検索エンジン
コサイン類似度 :
2つのベクトル間の類似度の指標で、-1~1の範囲をとる。
転置行列 :
・ある行列Aに対して Aの(i, j)要素と(j, i)要素を入れ替える
・転置後も行列式の値は変わらない
・転置の逆行列と逆行列の転置は同じ行列となる
t-SNE :
次元圧縮のために利用される手法であり、特に高次元での距離分布が低次元の距離分布にも合致するよう非線形型の変換を行う方法。
ニューラル常微分方程式 :
ResNetの課題にあった多くのメモリと時間を要する課題にを解決するため、中間層を微分方程式で捉える手法であり、NIPS2018のベストペーパーに選ばれた。
中国の主要IT3社「BAT」 :
「Baidu」「Alibaba」「Tencent」
エポック数 :
エポック数は学習に全訓練データを何度使い切ったかを表します。 イテレーション数は重みを何度更新したかを表します。
蒸留 :
蒸留とは、学習済みモデルに与えた入力とそれに対する出力を学習データとして、新たなモデルを訓練すること。必要な計算リソースを削減することができる。
データクレンジング :
データベースなどに保存されているデータの中から、重複や誤記、表記の揺れなどを探し出し、削除や修正、正規化などを行ってデータの品質を高めること。
データマイニングとウェブマイニング :
統計学、パターン認識、人工知能等のデータ解析技法を大量のデータに網羅的に適用することで、知識を取り出す技術のこと。ウェブページを対象にしたものをウェブマイニングと呼ぶ。