# AI G検定メモ ・意味ネットワーク - オブジェクト指向で登場する、is-aとかpart-ofとか ・オントロジー 知識を体系化する方法論として Cycプロジェクトは30年以上経つ今でも続いている ←哲学的な側面がある  # これが難しいので、オブジェクト指向プログラミングも難しいところがある訳か。。 heavy weight ontology と light weight ontology 現在のweb情報に基づく ・シンギュラリティ 2045年で爆発的な進化、人間は予測ができない AIが人間より賢くなるのは2029年 - モンテカルロ法 - ランダムに選んで力業で評価する方法 cf. ラスベガス法 - 正解しか返さない?? - 探索木 - 幅優先探索 - 最短距離を必ず見つけられるが、メモリが必要 - 深さ優先探索 - その逆 - フレーム問題: 教えるほどバカになる問題 ## 教師あり学習 ・k近傍法(KNN) - テストしたいデータから近い距離にあるk個のラベル付きデータの多数決で決める - 回帰と分類に使える(回帰でk個のデータの平均) ・回帰問題 - 連続値を予測する問題 - Lasso回帰: L1正則化項を加えたもの、特徴量の選択ができる、パラメータの絶対値の和 - Ridge回帰: L2正則化項を加えたもの、損失関数にL2ノルム、パラメータの二乗和 - Elastic Net: L1, L2を組み合わせたもの - 参考:R^2 = 1-RSS/TSS が大きいほど良いモデル RSS: モデルの残差 TSS: 実際のデータの平均値からのズレの総和 ・ロジスティック回帰 - 回帰問題では無く、分類問題 - 出力はsigmoid関数 or softmax関数 ※sigmoid関数は正規化する - 対数オッズ:log(p/(1-p)) これを線形回帰する - hint:e^x/(1+e^x) : xの部分に回帰問題の1次式が入ると考えれば良い ・決定木 - 評価関数 - 分類木 - Gini係数(不純度の指標) - 交差エントロピー - 回帰木 - 平均二乗誤差 - 平均絶対誤差(MAE) - 情報利得 =親ノードの不純度 - 重み付き子ノードの不純度 - 前処理が少なくてすむ - 外れ値など分類され顕在化するため - 過学習しやすい→剪定 - 剪定・プルーニング - 過学習を防ぐ ・交差エントロピー - 真の確率分布と、推定した確率分布の対数との積和 -\sum{p log q} - 似ていると小さくなる、SGDと相性が良い(微分すると...) ・エントロピー: -log P(E) ・ランダムフォレスト 決定木で、特徴量をランダムに選び出し、複数の決定木を作り、これでアンサンブル学習を行う。 ブートストラップサンプリング : 全データでは無くランダムに一部のデータを利用すること (cf.メトロポリス法) バギング(bagging) : 全体から一部のデータを用いて複数のモデルを用いて学習する方法 木の数を深くしても過学習しにくい ・ブースティング(boosting) - 決定木を使用 - バギングは複数モデルを並列処理、ブースティングは逐次的。 - モデルを順次学習させ、誤認識したデータを優先的に学習し、最終的に1つのモデルとして出力。 - 誤認識を加味して学習を続けるので過学習になりやすい(その代わりバイアスは小さくなる) - 一般的にランダムフォレストより精度は良い、学習に時間がかかる - 木の本数は過学習に影響しない。木の深さや葉に入る最小のサンプル数などがパラメータで汎化性能を決める - GBDT = Gradient Boosting Decision Tree - 今はXGBoostよりLighGBM? - さらに理解をするにはここが良さそう https://www.acceluniverse.com/blog/developers/2019/12/gbdt.html https://smart-hint.com/ml/gbdt-image/ - AdaBoost (Adaptive Boosting): - 前の学習器の誤分類に応じてデータの重みを調整して次の学習器を生成する 参考:https://aizine.ai/adaboost-0128/ - 「学習データの重み」が存在する - 1/nで初期化される - CatBoost: - LightGBMより良いらしい ・Stacking - 個々の学習器の予測値に重要度に応じた重みを追加 - 予測値を特徴量にしてさらに学習 - biasとvarianceをうまく下げる手法 - 具体例:https://atmarkit.itmedia.co.jp/ait/articles/2112/02/news016.html ・SVM - 分類・回帰いずれも可能 - 異なるクラス(分類)の各データ点との距離が最大となるような境界線を求める(マージン最大化) - 扱うデータは高次元 - 扱うデータのことをサポートベクトルという(予測に必要となる一部のデータ) - データが線形分類できない →データをあえて高次元に写像することで、写像後の空間で線形分類できるようにする - カーネル関数:写像する際の関数 - カーネルトリック:写像の計算が複雑にならないようにする - カーネル法とカーネルトリックは違う? ChatGPTによると、 - カーネル法: 特徴空間を高次元空間に写像することで線形分類器を適用可能にする - カーネルトリック: カーネル関数によって特徴量の非線形性を内積の形で表現することで、高速化 まとめると、カーネル法が大枠でトリックが実現方法、と大雑把に考えても問題なさそう - ロジスティック回帰に比べて - 利点:高い識別性能 - 欠点:データの前処理やパラメータの調整、結果の解釈が難しい - スラック変数 - 誤分類されたサンプルがどの程度マージン内に存在するか これを最小にすることが誤分類を減らす(ChatGPT) (誤差みたいなものだが、誤差とは言わない理由があるはず) ・neural network - 単純パーセプトロン - ロジスティック回帰と数式上は同じ - 多層パーセプトロン(MLP) - 非線形分類も可能 - 誤差逆伝搬法 ・自己回帰モデル(autoregressive model, ARモデル) - 対象は時系列データ - 対象系列が複数あるときは、ベクトル自己回帰モデル(VARモデル) - 自己回帰移動平均 ARMA: 現在の値を過去の値とホワイトノイズの和によって表現する ・多重共線性: 説明変数の中に、相関係数が高い組み合わせがある事 ・ベイズの定理 - 条件付き確率 P(A|B) = P(A∩B) / P(B) Bという条件下においてAという事象が起こる確率 = AかつBの確率を、Bが起こる確率で割った値 - ベイズの定理 P(A|B) = P(A)P(B|A) / P(B) - 事後確率:P(A|B) - 事前確率:P(A) - 尤度:P(B|A) - 例 1 万人に 1 人だけがかかる難病があるとします。そして、この難病の罹患者に対して行うと 95 % の精度で陽性かどうかを判別できる検査があります。ただし、この検査を非罹患者に対して行った場合は 2 %の確率で偽陽性になってしまいます。さて、この検査で陽性反応が出た人が、実際に罹患者である確率はどれぐらいでしょうか。 事前確率 P(A) = 0.0001 - 検査に関係なく罹患している確率 尤度 P(B|A) = 0.95 - 罹患していて、検査をすると陽性になる確率 周辺尤度 P(B) = ... という感じで P(A|B) を求めると、検査で陽性になる確率?を求められる?(どこか怪しい) ## 教師なし学習 ・k-means法 (階層無しクラスタリング) - 重心によるクラス分け - アルゴリズム 1. 入力データをk個のクラスタに適当に分ける 2. 各クラスタの重心を求める 3. k個の重心と各データとの距離を求め、各データを最も距離が近い重心に対応するクラスタに振り分ける 4. 重心の位置が(ほぼ)変化しなくなるまで2,3を繰り返す ・ウォード法(Ward's method) - 階層型クラスタリング - 最も距離が近い2つのデータを1つのクラスタにまとめ、これを順次繰り返して最終的に1つにまとめる - このときに作られる樹形図をデンドログラム(dendrogram) - ほかに、群平均法、最短距離法、最長距離法 - クラスター数を後から決められる ・主成分分析 PCA - データの特徴量間の相関を分析することでデータの構造を掴む手法 - 多数の特徴量を、相関の無い少数の特徴量へ次元削減 ←これが主成分 - 因子負荷量 - 特異値分解 - A=UDV - U, Vは正規行列(正方行列) - 多次元尺度構成法(MDS) - 多変量解析の一つ、ポジショニングマップで表現 - 類似しているデータを二次元あるいは三次元に配置し、視覚的に類似関係を把握するため - 例:ブルーオーシャン市場の発掘、レコメンド機能、ブランディング戦略など 参考:https://gmo-research.jp/research-column/multidimensional-scaling 他の分析との比較でわかりやすい - t-SNE - 非線形次元削減アルゴリズム、2次元又は三次元に変換 - 高次元の局所的な構造を維持、大局的な構造も可能な限り捉える - KLダイバージェンスを使って損失計算 - ヒントン先生 - スクリー基準、カイザー基準 ←調べる ・協調フィルタリング(collaborative filtering) - レコメンドシステムに利用 - コールドスタート問題 - 事前に参考にできる顧客のデータが必要 - コンテンツベースフィルタリング - 商品側の特徴量を利用するためコールドスタート問題が無い ・トピックモデル - 複数のクラスタに分類する(k-meansなどと異なる) - 記事内に出てくる単語からどのトピックに分類されるか? これにより、文書データ間の類似度を求められる - 文書データをユーザー、単語を商品に例えれば、レコメンドに使える - 3つの手法 - LDA - Latent Dirichlet Allocation (潜在的ディリクレ配分法) - 文書内に出現する単語の偏りによって、潜在的なトピックの分布を得る - PLSIをベイズ化したもの - 1つの文書からそれぞれのトピックの確率を出せる 参考:https://aizine.ai/lda-0314/ - PLSI - Probabilistic Latent Semantic Indexing: - 確率的なモデル - LSI - Latent Semantic Index: - 同義語検索を目的に考案 - 特異値分解を使用 ## 強化学習 - 多段決定問題 ・バンディットアルゴリズム(bandit algorithm) - ε-greedy方策: 基本は活用、一定確率εでランダムに探索をする - UCB方策(upper-confidence bound policy): - 信頼区間が大きいときは探索、小さいときは活用(ε-greedyと違ってランダムではない) - Thompson Sampling方策: - 方策とは:ある状態から取りうる行動の選択肢、およびその選択肢をどう決定するかの戦略 ・マルコフ決定過程モデル - マルコフ性: 将来の状態に遷移する確率は現在の状態にのみ依存 ・価値関数(Q値) - 状態価値関数(state-value function): - V_\pi(s) = E_\pi[R_t|s_t=s] - 方策πのもとで、初期状態をsとした場合の累積報酬の期待値 - 行動価値関数(action-value function): - Q_\pi(s, a) = E_\pi[R_t|s_t=s,a_t=a] - 方策πのもとで、初期状態sにおいて行動aを取った場合の累積報酬の期待値 - Q値、Q関数、効用関数とも呼ばれる ※この2つの関数に本質的な違いは無く、使い分け程度の違いらしい ※ここが一番わかりやすいかも? https://dx-consultant-fast-evolving.com/state-value-function-and-action-value-function/ ・TD法 - モンテカルロ法が最後まで試すのに対し、TD法は1つ先まで - TD誤差を求めて状態sの価値を更新していく ・方策 - Greedy方策(貪欲方策): ある状態で最も高いQ値を持つ行動を選択する決定的方策 - ε-greedy方策(ε貪欲方策): 確率εでランダムに行動し、それ以外でGreedy方策 - Q学習、DQNで使用? - ソフトマックス方策: ギブス分布に従う方策 ・方策勾配 - 方策勾配法(policy gradient method): - (ChatGPTより) 方策を確率分布として表現し、その分布をパラメータ化することで方策を学習 方策のパラメータを更新することで報酬を最大化するように方策を改善していく - (あるblogより)報酬の勾配を評価し、より高い報酬に向かう勾配を辿って方策のパラメータを最適化する方法 - 行動の選択肢が大量にある場合に用いられる(計算コスト削減のため) - 1エピソードごと - 方策反復法、方策オン - REINFORCE: ex.AlphaGo、報酬の平均で方策を評価?(計算量を減らすため) - Actor-Critic: - Actorを直接改善しながら、方策を評価するCriticを同時に学習させる - 報酬の揺らぎから影響を受けにくくなり、学習を安定化及び高速化できる(なぜ?) - 価値関数ベースおよび方策勾配ベースの組み合わせ、方策反復法に該当 - A3C(Asynchronous Advantage Actor-Critic): - 複数のエージェントが同じ環境で非同期に学習 - 学習が高速化、安定化 - 2016年 DeepMind - Soft Actor-Critic: 連続値制御の深層強化学習モデル。方策オフ型 - 用途: ロボット ・報酬成型 - 通常の報酬値に追加の値を加えて学習速度を向上 - PBRSがある ・プランニングにおけるモデルベースの手法 - 方策反復法 - 方策改善ステップと方策評価ステップ - 方策が安定し変化しなくなったら終了 - 方策勾配法、Actor-Critic - 価値反復法 - 価値改善ステップと方策抽出ステップ - 価値の更新量が小さくなったら終了 - SARSA - 価値反復法 - Qiitaより 1. 行動価値関数を計算 2. 方策を更新 3. 状態価値計算 - 方策反復法: - ランダムな初期値からベルマン方程式を用いて更新を繰り返すことで価値を最大にする方策を求める - 方策の更新によって価値も変化するため、方策反復法では価値の更新と方策の更新を交互に繰り返すことでその両方を最適化する。実際には複数ある行動の各価値の期待値に対して、方策で重み付けた和を現在の状態の価値に採用する。また、その際に方策を最大にする行動と期待値を最大にする行動が違うものだった場合、それが一致するように方策を更新していく。 - 価値反復法: - ランダムな初期値からベルマン最適方程式を用いて価値の更新を全ての状態に対して行い、それを繰り返すことで正確な価値に近づけていく - 方策が最大になるように行動するので、複数ある行動の中で最も価値の期待値が大きいものを使って価値の更新が行われる - ベルマン方程式: - 方策πに基づいて行動が決まるため方策ベース - ベルマン最適方程式: - 価値が最大になるよう行動するため価値ベース - 方策ベース: - 方策の条件付き確率πを方策勾配法などにより学習し、価値関数を求めることなく直接的に方策を決定する - 明示的な方策があり、現在の方策を改善するアルゴリズム。価値関数は内部的に有するが、行動選択に影響を与えない。まず「方策」を決めてからその「方策」の「価値」を高めるように「方策」を改善していく。 - 方策勾配法 - 価値ベース: - 価値関数QをTD学習やモンテカルロ法などにより学習し、この関数のもとで最適な行動を決定する - 明示的な方策はなく、サンプルから学習し、最適な価値関数の値を逐次推定するアルゴリズム。「価値」を求めたうえでその「価値」を高めるような「方策」を選択する。 - (ChatGPTより) Q学習、SARSA - 価値関数ベース: - 価値ベースとは違うらしい(by ChatGPT) ## モデルの評価 ・評価指標 - F値: (2 x precision x recall) / (precision + recall) - 正則化 - L0正則化: 絶対値のゼロ乗の和(=定数) - L1正則化: 一部のパラメータの値をゼロにすることで、特徴選択を行うことができる - L2正則化: パラメータの大きさに応じてゼロに近づけることで、汎化された滑らかなモデルを得ることができる ## ROC曲線とAUC - ROC - Receiver Operating Characteristic Curve - モデル出力の閾値を変え、そのTPR - FPRのグラフ - TPR = TP/(TP+FN) - 再現率と同じ - FPR = FP/(FP+TN) - AUC - Area Under the Curve - ROC曲線より下部の面積 - 1に近いほど性能が高い ## モデルの選択と情報量 - AIC - 赤池情報量規準 - どれくらいモデルを複雑にすれば良いのか、そのための目安 - AIC = -2logL + 2k L: モデルの尤度 k: パラメータ数 ## ディープラーニングのアプローチ ### 事前学習によるアプローチ(これは覚えなくて良い) - 事前学習は最近見かけない! - 計算コストが非常に高いため #### Auto Encoder (自己符号化器) - ジェフリー・ヒントン(Geoffrey Hinton) - 入出力層の次元より、隠れ層の次元が小さい #### 積層(Stacked) Auto Encoder - Aの隠れ層をBの可視層としてBを学習、Bの隠れ層をCの可視層としてCを学習、、、 入力層に近い層から順に逐次的に学習を行う ※A, B, Cはそれぞれ一組のauto encoder、それぞれの入力数はだんだん少なくなっていく # この説明じゃわかりにくいね - 順番に学習していくことを事前学習と呼ぶ ←→ 「ファインチューニング」に対して #### ファインチューニング - 付け足した層だけで無く、ネットワーク全体を学習する方法(転移学習は付け足した層だけ) - auto encoderの最終段に ロジスティック回帰 or 線形回帰層 を追加して、教師あり学習を実現する - 事前学習の後に回帰層を含めた学習を行う #### 深層信念ネットワーク - 教師無し学習に制限付きボルツマンマシンを追加 - 二層 ## ディープラーニングを実現するには - バーニーおじさんのルーツ - モデルのパラメータ数の10倍のデータ数が必要 ## 活性化関数 ### tanh関数 - sigmoid関数を線形変換したもの - -1 から 1 の範囲 - 微分の最大値は1 (sigmoid 0.25より大きい) ### ReLU関数 - 微分値は0と1 - Parametric ReLU - 0以下の傾斜を学習 - Randomized ReLU - 複数の傾きをランダムに試す ## 学習方法 参考:https://qiita.com/ZoneTsuyoshi/items/8ef6fa1e154d176e25b8 ここのまとめは凄い 参考:https://kunassy.com/oprimizer/ グラフが参考になる? 参考:https://tech-lab.sios.jp/archives/21823 ここの「結論」が参考になる - 勾配降下法の対応 - バッチ学習 - 最急勾配降下法 ←これだけ違う - オンライン学習 - SGD - ミニバッチ学習 - SGD - AdaGrad: 学習率を自動で更新(SGDでは手動)、学習が進むほど学習率を小さくしていく。各次元ごとに学習率を調整。Adaptive subGradient descent - RMSprop: AdaGrad+最近の勾配ほど強く影響 - AdaDelta: RMSpropは単位量が間違っていた - Adam: モーメンタム+RMSprop - AMSGrad: Adamの改良版(学習率が大きくなりすぎていた) - AdaBound: Adamの改良版。学習率の上限、下限を設定 - AMSBound: AMSGrad+AdaBound ## 他の手法 - no free lunch定理: あらゆる問題で性能の良い汎用最適化戦略は理論上不可能 - 正規化、標準化、白色化 - 白色化:各特徴量を無相関化した上で標準化する - 初期値 - 一様分布や正規分布に従う乱数の初期値ではデータの分布が崩れてしまうことが多い - sigmoid関数には Xavierの初期値、1/\sqrt(n)の標準偏差 - ReLU関数には Heの初期値 - バッチ正規化 - 各層において活性化関数をかける前に伝播してきたデータを正規化する - 活性化関数で消失してしまう情報の偏りを無くすのが目的? - 過学習しにくくなる - 重みの初期値に対する依存性を下げる効果が期待できる(重みに偏りがあっても正規化されるため) - チャネルごとに全データを正規化 - ほか: - Instance正規化: データごと、チャネルごとに正規化 - Layer正規化: データごとに全チャネルを正規化 - Group正規化: (InstanceとLayerの中間) - 帰無仮説 - 不正解の仮説を立て、それがすべて偽であることを証明することで、本来の正解を証明する - プーチンの戦争は世界にとって有益だ(帰無仮説)→これを否定できれば無益だと言うことになる - 剪定・プルーニング - 重みの一部を取り除く ## CNN - 単純型細胞(S細胞): 画像の濃淡パターン(特徴)を検出する - 複雑型細胞(C細胞): 特徴の位置が変動しても同一の特徴であると見なす - ネオコグニトロン - 上記2つの細胞の働きを実装 - 福島邦彦ら - LeNet - 畳み込み層とプーリング層の2種類の層を複数組み合わせた構造 - ヤン・ルカン - フィルタの値を学習する - プーリング層も画像のズレへの耐性、学習項目は無い(特徴マップを集約するだけだから?) - 全結合層は多層パーセプトロン - GAP Global Average Pooling - 分類したいクラスと特徴マップを1対1に対応させる - 最近は全結合層の代わりにこれを使うらしい - モデルのパラメータ(重み)の数が減る - 各チャンネルの全画素の平均値を求めて縮小するため - Dilated Convolution (Atorus Convolution) - カーネルの中に隙間があり、パラメータを増やさず、広範囲の畳み込み(わかりにくいか?) - Depthwise Separable Convolution - 空間方向とチャネル方向の2つの畳み込みに分解することでパラメータ数を減らす ### データ拡張 - Cutout: 正方形領域をzero - Random Erasing: 矩形領域をrandomにする - Mixup: 2枚の画像を合成、ラベルもmixされる - Cutmix: Cutout+Mixup ただし合成ではなく部分コピペ ### CNNの発展形 - AlexNet: ILSVRC 2012年に優勝 - VGG: 少ない層数で学習した後、途中に畳み込み層を追加して深くする - GoogLeNet: - Inceptionモジュールの導入(異なるフィルタサイズの畳み込みを複数同時に行う) - GAPを導入 - ResNet: - Skip connection(Residual Block)を導入 - (勾配問題を解消するため)層を飛び越えた結合を行う = 様々な形のネットワークのアンサンブル学習になる - Deep Residual Learningとも言う - Wide ResNet: カーネル数を増やした(=チャネル数が増える)、DropOutを使用 参考:https://deepsquare.jp/2021/08/wideresnet/ - DenseNet: - Skip connectionを工夫? - ResNetはskip connectionで足しているのに対し、これはチャネル方向に連結 参考:https://deepsquare.jp/2020/04/resnet-densenet/ - MobileNet: - 畳み込み層のパラメータ数を減らしたもの(1/8) - Depthwise Separable Convolutionを使用、次の2種類に分割 - Depthwise Convolution: 空間方向の畳み込み - Pointwise Convolution: チャネル方向の畳み込み - Google - NAS(Neural Architecture Search) - RNNと深層強化学習を使って準最適なネットワーク構造を探す - NASNet: ResNetのResidual Blockのような塊にした? - 連続したNormal Layer(cell)とReduction Layer(cell)の繰り返し - MnasNet: 強化学習の考えを使った、モバイル用のNAS - EfficientNet: 以上の改善から生まれたモデル、転移学習にも有用(らしい)、パラメータが少ない - MobileNetV2/V3, MnasNet, EfficientNetは似ているらしい https://qiita.com/nishiha/items/1e60a30e0307834d7698 - SENet - Attention機構の導入 - 畳み込み層の出力特徴マップのチャネル間の相互依存性に着目 - 特徴マップの各チャネル情報から各チャネルの重みを考慮することで、重要なチャネルを際立たせることを期待できる ## 深層生成モデル - 潜在空間を学習し、それをベクトルとして表現 - 変分AutoEncoder (VAE): - (圧縮では無く)統計分布に変換する - 2014 イアン・グッドフェロー - GAN: - Pix2Pix: - ドメイン変換を実現(昼→夜画像とか) - ノイズベクトルの代わりに画像そのものを入力としている - 欠点:学習に一対一に対応する画像が必要(つまり教師あり) - Cycle GAN: - Pix2Pixの欠点を克服 - 画像変換後、元の画像に変換する。元の画像と再変換後の画像で学習する。 - 問題点:顔の表情が正しく変換されない - Recycle GAN: - 動画変換 - Cycle GANの問題点を克服 - Style GAN: - 高解像度 - 2018 NVIDIA - 知覚的に滑らかな潜在変数の分布(理解が難しいのでpass) - 他には: LAPGAN, AlignDRAW - AnoGAN, EfficientGAN: - 異常検知 - AttnGAN - text-to-image - textとimageをそれぞれ別のencoderを通し、その結果でmatching scoreを求める - ほかにも凄い一杯あるみたい: GAN-INT-CLS, GAWWN, StackGAN, TAC-GAN, StackGAN++, AttnGAN, FusedGAN, HDGAN ## 物体検出タスク - 2段階モデル: 位置を特定してから物体クラスを識別 - R-CNN: - Region Proposalを使って、物体がありそうな領域を検知し、計算量を減らした - CNNの最上位層の1つ前の層を特徴ベクトルとし、SVMによってクラス識別を行う - PASCAL VOC 2012でmAP=53% - Fast R-CNN: - R-CNNのRegion ProposalはSelective Searchであったため時間がかかった これを特徴量で扱うことにして高速化した - Faster R-CNN: - Region ProposalをDNNにすることでさらに高速化した - FPN: Feature Pyramid Network - U-Netのような構造 - 特徴マップを拡大していく度に予測をする? - 異なるスケールの物体検知やセグメンテーションが可能 - パノプティックsegmentation - 様々なサイズの特徴マップを推論そのものに使う、計算量が抑えられる - 1段階モデル: 位置とクラス識別を同時 - YOLO: - 出力層を工夫して、領域・識別などの情報を直接出力している - SSD(Single Shot Multibox Detector): - 畳み込み層の特徴マップは畳み込む度に小さくなり、小さい物体は検出しにくくなる →途中の特徴マップからも出力 - デフォルトボックス: 複数の様々な矩形領域を用意して、物体との位置関係などの情報を出力できる ↑これってYOLOでもやっているんじゃない? - フィルタサイズを小さくして高速化を図った ※特徴マップ:プーリング層のダウンサンプリングした画像出力 ## Segmentation ### Semantic Segmentation - FCN(Fully Convolutional Network): - 全結合層が無い、すべての層が畳み込みのみで構成 - 特徴マップを入力画像と同じサイズに拡大、これがsegmentation結果 - SegNet: - auto encoderのような構造 - decodeするときに、(encode時の)最大値プーリングしたときの最大値があった画素だけをそのままの値で残し、それ以外をzeroにする (言葉だと説明は難しい) - (それにより)境界付近のsegmentation結果をぼやけさせずにすむ(らしい) - U-Net - auto encoder形式でencoderからdecoderへのskip connectionがある - encoderの特徴マップをdecoderの特徴マップに連結する。その際、複製・切り出しを行う。 (SegNetとあまり変わらない気がするが・・・) SegNetに比べて細かく扱えるらしい。 - PSPNet: Pyramid Pooling Module - ※auto encoder形式ではない。pyramidと言っているのは中間のpooling層がサイズがピラミッドみたいにだんだん変わるので。 - 特徴マップを異なるサイズでプーリングして、それぞれの大きさで畳み込み処理を行う それにより、大域的な特徴と局所的な特徴の両方を得るようにした - semantic以外にも使えるらしい?? - DeepLab - ※auto encoder形式ではない - Atrous convolutionを使用。(dilationがある) - DeepLab V3+ - SegNetやU-Netのような構造、複数の解像度の特徴を捉えるASPP(Atrous Spatial Pyramid Pooling)を採用 - Mask R-CNN - Faster R-CNNをsegmentation用に拡張 - 物体ごとに色分け - instance segmentationも同時に行う ### Instance Segmentation - Mask R-CNN - RPN(Region Proposan Network)で物体のある矩形領域を判別、その領域をクラス分類、画素単位でsegmentation ### Panoptic Segmentation - Panoptic FPN - Mask R-CNNを拡張 ## 姿勢推定 - 間接位置の推定が目的 - トップダウンアプローチ: 物体検出した後に姿勢推定 - ボトムアップアプローチ: 直接間接を検出(こちらの方が高速) - 信頼度マップを使用 - Open Pose - bottom-up approach - S・confidense maps: 部位の位置の推定 - L・Parts Affinity Fields(PAFs): 部位の連関を表す(骨格間の位置関係を考慮した処理) ## マルチタスク学習 - 1つのモデルで複数のタスクに対応 - Faster R-CNNとか、YOLOなど、識別と位置検出を同時に行うなど ## 時系列データ - メル周波数ケプストラム係数(MFCC) - スペクトル包絡を求める - 隠れマルコフモデル(HMM) - 音素を学習することで単語の認識に対応 - BoW (Bag-of-Words) - 順序情報は無い、語数情報のみ。出現頻度でベクトル化している。 - Bag-of-n-grams - n-gram+BoW - TF-IDF - Term Frequency-Inverse Document Frequency - 単語の重要度を表す(特定の文書で頻度が多い単語ほど重要とみなす) - TF: 文書内の単語の出限度 - IDF: 単語出現する文書の割合の逆数の対数(=出現頻度の少なさを表す) - 局所表現と分散表現 - 局所表現: one-hot vector -> 高次元になってしまう - (単語)分散表現(単語埋め込み):単語をベクトル空間に埋め込み、その空間上の一つの点として捉える 参考:https://qiita.com/Hironsan/items/a58636f946dd51f670b0 (Qiita) - word2vec - 二層のNNのみで構成(input-hidden-output)、 - CBOW(Continuous Bag-of-Words) >><< skip-gram - fastText - word2vecを高速化 - 単語構成する部分文字列の情報も含める →活用形にも対応 - ELMo(Embeddings from Language Models) - 文脈を考慮した分散表現 →1つの単語で複数の意味を持つ単語に対応 - 双方向のLSTM - WaveNet: - 2016年 DeepMind - パラメトリックTTS、Siriも使ってる、Gated Activate Unit - PixelCNNがベース、Dilated Casual Convolution 参考:https://qiita.com/MasaEguchi/items/cd5f7e9735a120f27e2a 参考:https://deepsquare.jp/2020/04/wavenet/ - 派生: - WaveGlow: 軽量化 - WaveRNN: RNN+全結合 ### RNN - BPTT(Back Propagation Through-Time) - 時間軸に沿って誤差を反映する - 入力と出力の数は同じ - skip接続 - 前のtime stempの隠れ状態を直接的に次のtime stempの入力に加える(ChatGBPT - 要確認:たぶん一つ前だけでは無いと思う) - CTC(Connectionist Temporarl Classification) - 入力-出力が1対1では不都合な場合 - 出力に空文字を追加、連続して同じ音素は1つとみなす - Elman network, Jordan network - 教師強制 - 1時刻前の正解データを現時点の入力として用いる - 学習の収束が早くなる可能性がある - 本番では教師データがないため出力の誤差が累積してしまう #### LSTM - 入力重み衝突/出力重み衝突: 関係の深い重みは大きくすべきだが、同時に小さくすべき(?) →LSTMでは、隠れ層の構造を変えることで対応 - CEC(Constant Error Carousel): 入力ゲート、出力ゲート、忘却ゲート - 忘却ゲートはsigmoid関数 - GRU(Gated Recurrent Unit): LSTMの簡略化版 reset gateと更新gate ### Seq2Seq - 入力と出力が異なる長さが可能 - encoder+decoderの2つのRNNで実現 - 固定長ベクトルにencodeされる - encoderとdecoderは異なるモデルでも良いらしい - Image Captioning - encoderは画像(CNN)、decoderは言語という技が使える ### Attention 必読:https://www.softbanktech.co.jp/special/blog/cloud_blog/2019/0063/ - 時間の重み付けを組み込んだもの - RNNは現在の状態が次の時刻にどれだけ影響を与えるかは考慮していない - seq2seqもどんなに長い文でも固定長のベクトルに集約されるだけ - 長文にも対応しやすい - encoderの中間層の出力を全て保持しておき、decoderで現れた中間層の情報から保存しておいたencoderのそれぞれの情報間の重要度を求め、重要度を考慮した予測を行う機構です。 - Attentionはマスクのことであり、特徴量マップからのさらなるマップ処理のこと?? https://www.softbanktech.co.jp/special/blog/cloud_blog/2019/0063/ これの「空間方向のAttention」より ### Transformer - RNNの欠点を改善 - 並列計算ができない(時系列のため) - 長文に対応できない(離れた単語の関係を捉えきれない) - ネットワーク全体が、Self-AttentionとSource-Target Attentionのみから構成(RNNはない) - Source-Target Attation: 入力文と出力文の単語間の関連度 - Self-Attention: 入力文内の単語間または出力文内の単語間の関連度 - positional encoding: - Self-Attentionは単語間の関係を直接計算できるが、語順情報を持っていない - encoderとdecoderは異なる - decoderは、Source-Target Attentionにより入力文の情報も利用 - decoderは、並列化できない(順次出力)。ただし、学習時は並列処理可能 - Self-Attention: - 自己教師あり学習 - 途中までの文から次の単語を予測 - Attention(Q, K, V) = softmax(QK^T/\sqrt(d_k) * V) - Vにどのくらい注意を当てるかが、QとKの積で決める(重みだけで無く、注意の当て方自体も学習できる) = 入力に応じてどこに焦点を当てるかが決まる 参考:https://cvml-expertguide.net/terms/dl/seq2seq-translation/transformer/multi-head-attention/ - Variation: - DETR(DEtection TRansformer): - 2020 Facebook AI ### GPT - Generative Pre-Training - 事前学習と同じモデルを使って応用タスクを解くことができる(ファインチューニングが要らない) - 文章の中にタスクを埋め込んでいる ←すごい発想! - 例えば、事前学習で次の単語予測を学習し、転移学習で評判分析を学習する この2つを全く同じモデルで実現できる - Transformerのdecoderと似た構造、Self-Attentionを利用 - 他の応用例 - 言語理解タスク(転移学習で実現) - 自然言語推論(NLI, Natural Language Inference) - 与えられた2つの文書の内容に矛盾があるか、一方が他方を含意するか(含意関係認識、RTE, Recognizing Textual Entailment) - 質問応答 - 質問に対して適切な回答を選択肢から選ぶ - 常識推論が必要となる - 意味的類似度判定 - 2つの文が与えられ、同じ意味か - 文書分類 文書がどのクラスに属するか?(評判分析もこの一種) - GLUE(General Language Understanding Evaluation) - 評価用データセット ※現在はGLUEでは物足りないのでSuperGLUEも出ている - パラメータ数は約1億(!) ### BERT - Bidirectional Encoder Representations from Transformers - Transformerのencoderを利用(GPTと対照的) - encoderなので両方向(過去・未来)の情報を同時に使うことができる - 事前学習は、MLM(Masked Language Model) と NSP(Next Sentence Prediction) で行う - MLM: 文の一部の単語をマスクしてその単語を予測 - NSP: 2つの文が連続する文かの判定 - GPTと同様の応用タスクが実行可能 - さらに、品詞タグ付け、固有表現解析、SQuAD(Stanford Qustion Answering Dataset)も可能 - ALBERT, DistilBERT: パラメータ数を削減 - パラメータ数は約3億 - 2019 RoBERT, DistilBERT, XLNetがある - 2019 Megatron-LM NVIDIA 83億 - 2020 Turing-NLG Microsoft 170億 GPT-3 1750億 - Vision Transformer(ViT): - CNNを使わない画像処理、事前学習モデル - TransformerとMLP(多層パーセプトロン)を使用している - 画像をパッチに分解して、ベクトル化したものをTransformerに突っ込む ## 強化学習 ### Q学習 - Q学習の種類 - Q学習 - ある状態の時に取ったある行動の価値を、Qテーブルで管理し、行動する度にQ値を更新していく - 期待値が最大値を取るようにQ値を評価(次のQ値を使う) - Q値をTD法によって最適化する手法 - 方策オフ、TD学習、価値ベース 参考:https://ai-kenkyujo.com/artificial-intelligence/algorithm/deep-q-network-toha/ - SARSA - 価値反復法、方策オン、TD学習、価値ベース - 現在のQ値を使ってQ値を評価する??(次のQ値を使う) - モンテカルロ法 - 何らかの報酬が得られるまで行動をして、その結果からQ値を求める - 状態行動空間の爆発 - 方策オンとオフ: - ChatGBPによると、方策オフでは行動するときの方策と学習するときの方策が違うらしい (ε-greedyが関係している?Q値は価値が最大になるようにするが、ε-greedyで探索するときは価値の大きさを無視するため。となると探索をする・しないが方策オフ・オンになってしまうので何かが違う?) そのため、方策オンは学習と実行が同時に行われるので安定しているが改善が遅く、オフでは改善は早いが安定性が低い - 方策オン: - 改善しようとしている方策と同じ方策で得た経験で方策を改善する手法 - 更新前の昔の方策で集めたデータを学習に使えないため、サンプル効率は悪い - 同じ方策で得た経験で方策を改善するため、学習が安定している - ターゲット方策=行動方策 - SARSA、方策勾配法、A3Cなどが該当 - 方策オフ: - 学習のために探索に使用している挙動方策で得た経験を、改善対象の目的方策の改善に使える手法 - 昔の方策で集めた経験を学習に使えるため、サンプル効率が良い - 異なる方策で得たデータを学習に使うため、分散が大きく収束は遅い - ターゲット方策!=行動方策 - Q学習や経験再生を用いるDQNが該当、Soft Actor-Critic - 行動方策: 行動を決定する方策 - ターゲット方策: 行動価値関数の更新に用いる方策 ### DQN - 2013 DQNがきっかけで強化学習が発展 - 画像をDNNの入力、価値関数や方策を出力 - 状態を入力、報酬が教師 - 価値関数QをCNNで近似、損失関数はTD誤差 - 方策オン - 経験再生: - 過去に探索した経験データをランダムに抜き出して学習する(学習の安定化、収束しやすくする) - パラーメータ更新を逐次行わず、一旦貯めておく(直近の情報に強い相関を持たせないようにするため、汎化性能を上げるため) - Fixed Target Q-Network - 時間的差分がある過去のネットワークに教師の役割(価値推定の安定化) - 教師用のQ関数(?)を逐次更新せず、ある程度溜めてから更新した方が安定する - 参考:https://ai-kenkyujo.com/artificial-intelligence/algorithm/deep-q-network-toha/ - Variation: - Double DQN - ノイズによる偏ったQ値の過大評価を改善 ←最大値を採用するため、平均値(期待値)が悪いほうを選ぶ場合がある - 2つのネットワーク(target network, online network)を異なる評価? - 優先度付き経験再生 - Dueling Network - 行動価値を、状態価値とアドバンテージ(行動)に分解、最後に足し合わせて行動価値関数Qを予測 - DDQNより収束が早いらしい - categorical DQN - Noisy Network - ε-greedy法では、εのアニーリングのスケジューリング関数がパフォーマンスを大きく左右してしまい、扱いづらい - 学習可能なパラメータと共に外乱を与え、それも含めて学習させる →Rainbowに発展・統合 - 内発的報酬 ### ゲームAI - 二人完全情報確定ゼロ和ゲーム - 囲碁、将棋、チェスなど - モンテカルロ木探索 - AlphaGo - 2016年 - モンテカルロ木探索に深層強化学習の手法を組み合わせた - Value NetworkとPolicy Network - 盤面から勝率を計算する - 教師あり学習と自己対戦 - 詳細 - 使用されているneural network - Supervised Learning Policy Network (SL Policy) : 棋譜を学習 - Reinforcement Learning Policy Network (RL Policy) : 自己対戦(方策ネットワーク) - Rollout Policy: 棋譜を学習(SL Policyより高速) - Value Network: 自己対戦による局面と勝率の学習 - 最後にモンテカルロ木探索の行動選択部分に組み込む - AlphaGo Zero - 自己対戦のみ(棋譜は使わない) - Alpha Zero - AlphaGo Zeroの一般化 - マルチエージェント強化学習 (Multi-Agent Reinforcement Learning, MARL) - 複数のエージェントが協調 - OpenAI Five (2019年) - MOBA(Multiplayer Online Battle Arena)のDota2用game AI - deep neural network + LSTM + PPO ←特別なものは無い - CPU5万個以上、GPU千個以上 - AlphaStar (2019年) - RTS(Real-Time Strategy)のスタークラフト2用game AI - ResNet + LSTM + Pointer Network + Transformerなど - Zen, ERICA, Crazy Stone ### ロボット制御 - 課題 - 次元の呪い - 次元が高くなると計算量が指数関数的に増える。ゲームでは低次元の離散値だったが、連続値を扱う必要があるため - 状態表現学習 - 「状態」という特徴量をどうやって学習させるか? - 次元削減、転移学習が容易 ※表現学習 - 特徴表現を自立的に獲得。特徴量が非常に多い場合は有効 - 連続値制御問題 - 出力した離散値に対してどのように連続値を制御するのか?適切な離散値とは? - 報酬設計が難しい →報酬成形が必要になる - サンプル効率が低い - 報酬や価値では情報として弱いため、多くのサンプルが必要になる - データ収集コストが高い - ロボットは高価、リアルタイムでしか収集できない - 方策の安全性の担保が難しい - ロボットの故障、人への危害 - 探索と活用のトレードオフがある(探索を自由にすると何が起こるか解らない) - 解決策 - 事前知識(ドメイン知識)を学習に組み込む - オフラインデータの利用 - 模倣学習 - 人間が期待する動作をロボットに教示する(デモンストレーションデータ) - オフライン強化学習 - 事前に収集された固定のデータセットから方策の学習を行う(実際のデータを得ることが難しいときに有利) - 分布シフトと呼ばれる現象が課題 - シミュレーターの利用 - sim2real - domain randomization - simulation上の物理的なパラメータをランダムに設定した複数のsimulationによるデータから学習(これもアンサンブルっぽい) - 残差強化学習 - 物理法則による運動と実際の運動の誤差を強化学習によって補完、など - 参考:残差平方和RSS = 誤差の二乗の和 - 環境のモデルの学習 - モデルフリーの強化学習: - 環境に関する知識を明示的に学習しない - 試行錯誤ベースで状態から行動へのマッピングを関数近似する - モデルベース強化学習: - 環境に関する予測モデルを明示的に活用しながら方策の学習 - 状態遷移規則と報酬規則を関数近似する手法 →環境モデルを構築すると言うこと? →世界モデル ## メタ学習 ・MAML - Model/Task agnostic(回帰、分類、強化学習なんでも) - 勾配の勾配の計算(SGD) - 微分可能であること - 追加パラメータを必要としない ## XAI - LIME: - 線形重回帰で近似し、結線の重みが重要度 - SHAP: SHapley Additive exPlanations - シャープレイ値 - 協力ゲーム理論で使われる重要度を近似的に計算(等分配ではなく貢献度に応じて報酬を与える) - CAM: Class Activation Map - 特徴量を取得し、GAP後線形重回帰に渡される 特徴マップと線形重回帰の重みを掛け合わせたものをヒートマップにする これを入力画像に加えることで、画像のどこに注力したかが判断できる - GAPを持つモデルにしか適用できない →Grad CAM - 特徴量の勾配を使う(GAPは関係なくなる?) - Grad-CAM - 画像のどこを見ているか、を可視化(ヒートマップ) - 勾配情報を用いて可視化(学習時の勾配値が大きいピクセル) - Guided Grad-CAM - 入力値の勾配情報も利用 - 信用割当問題: - どのパラメーターが貢献しているのか? - 誤差逆伝播法で勾配が大きいほど貢献している(本当?) - 一般的には、「複数のコンポーネントから成るシステムの最終的な出力が間違っている場合に、どのコンポーネントに責任があり、どこを修正すればよいのかを求める問題である」 - 大局的説明 - 上記は局所的な説明。 - モデルの仕組みや使用したデータからのアプローチ - プロファイリング - ある人物の既知の情報から未知の情報を推定したり、将来の行動やリスクを予測すること - 例:過去の選考データを学習したAIによる採用の合否判定、信用スコアのプロファイリングに基づく自動ローン審査 ## domain adaptation - 膨大な教師ラベルが必要な問題への対応 - ソースドメインはラベルがあり、ターゲットにはラベルが無い or 一部しか無い - そこで、ドメインの関連性を学習をさせることでターゲットのドメインデータを扱えるようにする? ## 自動運転 レベル1:システムが前後、左右いずれかを制御 レベル2:Hands off - システムがステアリング操作、加減速いずれも制御 レベル3:Eyes off - 条件付き自動化。システムの要求に対しドライバーの対応が必要 レベル4:Brain off - 限定的に完全自動運転 レベル5:完全自動運転 ## RPA クラス1:RPA 単純な定型業務 クラス2:EPA(Enhanced Process Automation) AIを用いて情報解析・非構造化データの読み取りなどの非定型作業の自動化 クラス3:CA(Cognitive Automation) Deep Learningや自然言語処理などを使って・・・意思決定まで自動化。 ## ドローン レベル1:目視内、手動 レベル2:目視内、自動 レベル3:目視外、自動(無人地帯) レベル4:目視外、自動(有人地帯) ## AIプロジェクトの計画 - CRISP-DM - CRoss-Industry Standard Process for Data Mining - データ分析に主眼を置いた、6つのステップ - ビジネスの課題の理解、データの理解、データの準備、モデル作成、評価、展開・共有 - MLOps - BPR - Business Process Re-engineering - AIを利活用するプロセスに変更する - PbD - Privacy by Design - 開発段階からプライバシー侵害の予防を指向する - ほか、Security by Design, Value sensitive design - オープンデータセット - 画像系 - ImageNet, PascalVOC, MS COCO - 自然言語 - WordNet, SQuAD, DBPedia - 音声 - LibriSpeech - データの利用条件 - 著作権法、不正競争防止法、個人情報保護法など(可能性を考えると色んな法律が絡む) - 2018年に経済産業省が「AI・データの利用に関する契約ガイドライン」を策定。(2019年にV1.1) - データ契約の3類型 - データの加工 - 匿名加工情報 - 「カメラ画像利活用ガイドブック」2017年第1版 - ELSI - Ethical, Legal and Social Implications - XAI - Explainable AI - フィルターバブル現象:好みが強調されて特化してしまう現象 - FATの原則 - Fairness, Accountability and Transparency - DEI - Diversity, Equality and Inclusion - ESG - Environment, Social and Governance - RRI - Robot Revolution & Industrial IoT Initiative - 収集・生成したデータや学習済みモデルは、一定の条件を満たせば、知的財産として保護される - 営業秘密 - 非公知性・有用性・秘密管理性を満たせば保護される - 限定提供データ: 2018年より - オープンデータに関する適用除外 - 蒸留(によるデータ作成)は法的保護にはならない可能性が大 - アルゴリズムバイアス - Partnership on AI (PAI) - アシロマAI原則 ■人物・年号問題 - 苦手な歴史問題 1946 ENIAC 1955-56 ロジック・セオリスト:世界初の人工知能、数学の定理を自動的に(ヒューリスティックで)証明、アレン・ニューウェル、ハーバート・サイモン 1956 ダートマス会議 - 初めてAI(ジョンマッカーシー)、マーヴィン・ミンスキー(人工知能の父)、ジョン・マッカーシー(LISP)、アレン・ニューウェル、ハーバート・サイモン、クロード・シャノン 1958 単純パーセプトロン(フランク・ローゼンブラット) 1959 GPS(General Problem Solver)、ハーバート・サイモン、アレン・ニューウェル 1960- DENDRAL、スタンフォード大学、未知の有機化合物を特定 1964-1966 ELIZA、ジョセフ・ワイゼンバウム、対話プログラム 1968-1970 SHRDLU、テリー・ウィノグラード 1969 フレーム問題 : ジョンマッカーシー、パトリック・ヘイズ 1968-1982 Macsyma、数式処理 1970- MYCIN、スタンフォード大学、血液中のバクテリアの診断支援(ルールベース) 1980 ジョン・サール - 強いAI・弱いAI (心を持つ or not) 1984- Cycプロジェクト(自然な会話) 1991- ローブナーコンテスト 1989 LeNet 1998 PDDL、Planning Domain Definition Language 2013- Stockfish(チェス) DQN R-CNN 2014 GAN/イアン・グッドフェロー 2015 PLeRU-Net - Microsoft、人間の分類精度を超えた 2016 AlphaGo GNMT Google翻訳 2017 elmo(将棋) Transformer Google+トロント大学 2018 BERT(Google) 第1次AIブーム 1950後半~1960 - 推論・探索の時代 - トイプロブレムしか解けないレベル - 単純パーセプトロン 第2次AIブーム 1980年代 - 知識の時代 - エクスパートシステム - 専門知識による実用的システム - 第五世代コンピュータ 第3次AIブーム 2010~ - ビッグデータなど ## ILSVRC 2012 AlexNet : トロント大学のジェフリー・ヒントン SuperVisionチーム 2013 ZFNet 2014 GoogLeNet 準優勝 VGGNet 2015 ResNet : Microsoft 2016 CUImage : 香港中文大学 2017 SENet : 中国科学アカデミー ※人間の認識率は4%で、2015年に抜いた ■時事系 人間中心のAI社会原則 https://www.juce.jp/LINK/journal/2001/02_05.html - 4つの階層:基本理念、ビジョン、AI社会原則、AI開発利用原則 - 3つの基本理念: 人間の尊厳、多様性・包摂性、持続可能性 - 7つの社会原則: 人間中心、教育・リテラシー、プライバシー確保、セキュリティ確保、公正競争確保、公平性・説明責任及び透明性、イノベーション ・限定提供データ https://www.meti.go.jp/shingikai/mono_info_service/sports_content/pdf/002_s01_00.pdf https://keiyaku-watch.jp/media/kisochishiki/genteiteikyou-data/ - 営業秘密、オープンデータは対象外 - 要件に、限定提供性、電磁的管理性、相当蓄積性がある ・白書系リンク [経産省](https://www.meti.go.jp/policy/it_policy/ai-governance/index.html) [総務省](https://www.soumu.go.jp/johotsusintokei/whitepaper/) [内閣府](https://www8.cao.go.jp/cstp/ai/index.html) オープンデータの義務づけ - 国及び地方公共団体が対象 ・[匿名加工情報](https://www.ppc.go.jp/personalinfo/tokumeikakouInfo/) k-匿名化 マスキングだけではダメ(?) ・統合イノベーション戦略2022 https://www.ieice.org/jpn_r/activities/kikakusenryakushitsuevent/assets/pdf/20220907_01.pdf - 我が国が目指す社会(Society 5.0)の実現に向け、官民の力を結集できるよう、3つの柱を中心として政策の方向性と実現構想について更なる具体化 - 第6期科学技術・イノベーション基本計画の実行計画として位置付け - 科学技術・イノベーション政策の3つの柱: - 知の基盤と人材育成の強化 - イノベーション・エコシステムの形成 - 先端科学技術の戦略的な推進 - 先見性を持って、官民が連携・協力して科学技術・イノベーションにより国家的重要課題に対応する - Society5.0の実現に向けた科学・イノベーション政策 - 持続可能で強靭な社会への変革 - 知の創造 - 人材の育成 ・データ連携基盤 https://www.dir.co.jp/report/research/policy-analysis/human-society/20190415_020750.pdf https://www.cas.go.jp/jp/seisaku/digital_denen/dai2/siryou2-1.pdf - 基本的な構成要素: - サービスプラットフォーム - フレームワーク: 共通となる定義などを進めていく体制 - ルール: 法制度、ガイドライン等 - デジタル田園都市構想: デジタルの力で「暮らし」「産業」「社会」を変革し、地域を全国や世界と有機的につなげていく ・オープンデータ基本方針 - オープンデータの条件: - 無償で利用できること - 営利・非営利を問わず二次利用可能 - 機械判読に適したもの ※上記条件を満たさないopen dataは「オープンデータ」に該当しない(すげー) - オープンデータを利用したビジネスの3分類: - 付加価値型 - 新価値創造型 - プラットフォーム型 ・産業データ共有事業の認定制度 - 協調領域におけるデータの収集・活用などを実施する民間事業者の取組みを主務大臣が認定して支援するもの - 事業者がデータの提供に依頼すると、主務大臣が行政機関にデータ提供を要請し、関係する行政機関がデータを提供する - 主務大臣の認定を受ける上では、セキュリティの確保が要件の一つ - 産業データ活用促進事業では、Connected Industries重点5分野の協調領域における事業者等が補助される - Connected Industries重点5分野: - 自動走行・モビリティサービス - ものづくり・ロボティクス - バイオ・素材 - プラント・インフラ保安 - スマートライフ ・国際系 - OECDの「AIに関する理事会勧告」2019.5 「管理5原則」 - AIに関わる全てのstake holderを対象とした、AIに関する世界初の国際的政策ガイドライン - 人間中心の価値・公平性の確保や、透明性・説明可能性の確保など - 人間中心の考え方を基本に、信頼できるAIを開発・利用すること - OECDの「AIに関する理事会勧告」2019.5 「5うの指針」 - 信頼できるAIを構築可能な環境整備を各国政府が進めるべきである - AIの研究開発への投資。信頼できるAIのイノベーションを促進するため、各国政府は学際的な取組を含め投資を検討すべきである 不適切なバイアスがないAIの研究開発のための環境を支援し、かつ相互運用性と技術標準の利用を向上させるための投資を奨励すべき - AIのためのデジタル・エコシステムの整備。各国政府は、信頼できるAIのためのデジタル・エコシステムの開発と、それへのアクセスを促進すべきである 安全、公平、適法、かつ倫理的なデータの共有のためのメカニズムに対する支援も検討すべき - AIを推進するための政策環境の整備。信頼できるAIシステムの研究・開発段階から、展開・稼働の段階への迅速な移行を支援するための政策環境整備を促進すべき また、AIシステムに適用される政策や規制の枠組みとその評価のメカニズムについても見直し、かつ状況に順応させるべき - PAI(Partnership on AI) - AIの責任ある使用に取り組む非営利団体 実用的なガイダンスにまとめられるような知見を収集し、ツール、提言、その他のリソースを開発する。そして、実践的な適用促進・公共政策への情報提供・国民の理解促進のために活動 - AIのベストプラクティスを模索し、一般の人々への教育も行う - AI の発展が人々と社会にポジティブな結果をもたらすよう、世界のセクター、分野、人口統計を超えた多様な声を結集すること - 公正で説明可能なAIの開発やAIと人間の協業に関する研究等 - 13ヶ国、100以上の組織が会員 ・海外系 - 中国の「次世代AI発展計画」 - 経済成長を目的として政府が民間企業を支援してAI市場を創出すること - 2020年、2025年、2030年での実現目標、注目分野、AI産業市場規模などの詳細な計画 - 4つのプロジェクトの基盤分野: スマートシティAI基盤、自動運転国家AI開放・革新基盤、医療イメージングAI基盤、スマート音声AI基盤 - 2013年〜2018年において人工知能に関する論文数が世界第1位、人工知能に関する企業数が世界第2位であることなどが成果として示されている ・その他 - 内部統制 - 内部統制が有効に機能していることを経営者自らが評価し、金融商品取引法に基づいて「内部統制報告書」を作成することが義務づけられている - 原則として、上場企業は、「内部統制報告書」を公表するにあたり、公認会計士または監査法人による監査が必要となる - 「財務報告に係る内部統制の評価及び監査の基準」では、内部統制において達成すべき具体的な項目が列挙されている - 業務の有効性及び効率性、財務報告の信頼性、事業活動に関わる法令等の遵守、資産の保全 ■その他用語 CVPR: IEEE/CVF Conputer Vision and Pattern Recognition Conference ICML: International Conference on Machine Learning OSTA(State Of The Art): 最高精度 IoU: 正解矩形と予測矩形の、矩形領域の重なり度 0~1 大きいほど合致 mAP(Mean Average Precision): IoU 0.5~0.95に対する適合率の平均を取る 談話構造解析: 文のつながりの解析 照応解析: 代名詞の指示対象を推定したり、省略された名詞句の補完 ステップワイズ法: 説明変数の選択に使う 相互情報量: 確率変数XとYの依存度。依存しているとき最大 単位: EB define-and-run シンボルグラウンディング問題: セマンテックWeb: Webサイトが持つ意味をコンピュータに理解させ、コンピュータ同士で処理を行わせるための技術 ローブナーコンテスト: チューリングテストに合格する会話ソフトのコンテスト LOD(Linked Open Data): コンピュータが利用可能なデータのWebの構築 STRIPS: 1971 (Stanford Research Institute Problem Solver) 前提条件、行動、結果で記述する手法。自動計画用の言語。 SHRDLU: 1968-70 英語の指示による「積み木の世界」で物体を動かす ヒューリスティックな知識:探索に利用する経験的な知識(コスト計算のため) Mini-Max法:自分はスコアが最大になるよう、相手は(自分が)最も不利になる手を打つはずという前提での戦略 αβ法:Mini-Max法による探索をできるだけ減らす手法 αカット: (自分の手を考えるときに使う?) スコアが「最大」のものを選ぶ過程で、 スコアが「小さい」ノードが出現した時点で、そのノードを探索対象から外してしまう手法 βカット: (相手の手を考えるときに使う?) スコアが「最小」のものを選ぶ過程で、 すでに出現したスコアよりいも「大きい」ノードが表れた時点で、その先につながるノードの探索を止める手法 サイバーバルカン化(スプリンターネット): サイバー空間での国や地域間の分断 準委任契約・SES契約: 作業時間のみに報酬が発生し、成果物に対しての責任は発生しない ヒッカムの格言: <=> オッカムの剃刀 # その他統計学(関係ない) - 記述統計 - すべてのサンプルの規則性から法則を見いだす 推測統計 - 確率論に基づき、一部の観察から全体を知る - 決定木 - Gini係数 - ex. Gini = 1 - Aの比率 - Bの比率 - 不純度が大きいとGini係数が大きくなる - スタージェスの公式 - ヒストグラムの階級の目安 k = log2N + 1 k: 階級の数 N: データの数 ex. 生徒40人のテストの点数 → log2 40 + 1 -> 6 - 四分位点 - データを四分割した際の、3つの分割点のこと(第2四分位点が中央値になる) - 第1四分位点から第3四分位点に50%が含まれる = IQR(Interquartile Range) 四分位範囲 - 箱ひげ図に使う - グループのデータ数にかかわらず、分布の比較が容易にできる - 外れ値が見つけやすい(IQR x 1.5より大きいところが外れ値) - 幾何平均、調和平均、不偏分散 - 中心極限定理 - 標本集団の平均値の分布は正規分布に従う - t分布 - 母集団のσが不明のため、標本のσで置き換えたとき、標準正規分布をt分布で代替表現する。t分布は標本数nが大きいほど標準正規分布に近づく - 帰無仮説 - ←→対立仮説 - ex.母集団と標本の平均値は同じ、という仮定とか - パラメトリック検定:母集団が正規分布に従う - カイ二乗検定: - ノンパラメトリック検定 - カテゴリ型に使える - 帰無仮説に基づいて、観測度数の合計値(など)から期待度数を当てはめる 観測度数と期待度数の差の二乗和を求める。これがカイ二乗値 - 自由度によって分布のグラフは大きく異なる(t分布は正規分布に近づく)