【意外と難しい!?】G検定に合格日誌
合格したので覚えている範囲で書き残します
はじめに感想を少し。 200問あって前半悩みすぎて後半テキトー回答多しで 正直全然自信なかったですが、合格でしたw 今回受験料半額ということもあり受験者が過去最多で、12000人うけて8000人くらい受かってるから落ちる方が少数派というね。 一体全体何点以上が合格で、自分は何点だったのかが確認出来ないのがもどかしい。(←公表されないようです。。なんだかなぁ) ちなみに私が勉強に使ったのはこの1冊だけ。あとはネットでググった情報ばかりです。
この本だけで十分だったかと言えば、合格はしたものの決して十分ではなかった。 結構カバーできてない領域あるなーと思いながら問題を解いてました。 問題を解いてる最中に調べたりすることは許容されているので、何個か調べたり本見返したりはしましたが、 これをやっていると確実に時間が足りなくなります。
では実際にどんな問題が出たのか。
法律とか知的財産問題がたくさん出ててこずった
・オープンデータを基にして作成されたモデルには著作権があるの?とかどこの範囲まで著作権がおよぶの?みたいない問題
・AIのために新たに作られた法律とか、ドローンに関する法律も出題された
→正直この辺まったく本では勉強していなかった範囲です。こんな感じの問題が前半続いたため焦りました。 AI白書読めばこの辺書いてたのかなぁ。。。
アルゴリズム
・サポートベクターマシーン
・ランダムフォレスト
・決定木
まぁこの辺の教科書にかいてあるようなことは当然でました。
AIの歴史問題も結構多い
・何次ブームの特徴とうまくいかなかった原因とか
・開発されたAIの順番を答える問題とか。
まぁこの辺も教科書通りでしたね、うる覚えばっかりで危うかったけどw
このテキストだけでは網羅できてない範囲が多かった
このテキストを素早く2周してうる覚え状態で挑みましたが、「あー何か書いてあったな」って問題ももちろん多いのですが、意外だったのが、「なにこれ?全く初見初耳ですよこんな問題、こんな人名」みたいな問題も多かったです。正直さっぱりわからない問題が前半に続き、だいぶ精神面でやられました。
ここから先は学習に使ったキーワード集です。
基本的にG検定はキーワードを聞いて、それが何かをざっくり説明できれば良い。という問題なので キーワードだけ集めました。一つ一つの意味とかわからなければ自分で調べて答えられるようにしておくと良いでしょう。
人口知能とは
- 明確な定義がない
- 第1次AIブーム:推論や探索、1950年代〜1960年代
- 探索木
- ダートマス会議
- 問題点:トイプロブレム(簡単な迷路やパズルなどの限定されたもの)しか解けない
- 第2次AIブーム:知識表現、エキスパートシステム、1980年代
- エキスパートシステム
- 問題点:常識など広い範囲の知識をちくせきするのが膨大で困難
- 第3次AIブーム:機械学習と深層学習、2010年代
- ムーアの法則でCPUが進化し、深層学習が登場
人口知能をめぐる動向
- ムーアの法則でCPUが進化し、深層学習が登場
- 探索と推論
- 探索木 ハノイの塔
- ブルートフォース 力任せに多数のシミュレーションを計算する探索法
- ボードゲームで人間に勝つ
- DeepMind社のAlphaGoが2015年に将棋で勝利
- 2017年にはAlphaGo Zeroが登場
- 知識表現
- 対話システム(イライザ) あたかも対話しているかのよう
- エキスパートシステム 専門知識を詰め込んだが、データの蓄積・管理が膨大なことが問題に
- 意味ネットワーク(Cycプロジェクト) 今もなお30年以上続いているプロジェクトで一般常識を全部詰め込んでやりたい強い気持ち
- IBMのワトソン
- 機械学習
- 深層学習
- ディープニューラルネットワーク(DN) 単純パーセプトロンという一番シンプルな構造が複数組み合わさり、入力層と出力層の間に隠れ層が多数存在するものをDNNという。
特徴量を自動で学習 ジェフリーヒントン教授がILSVRC その後、AlexNet、ResNet、Kaggle
ILSVRC、AlexNet、ResNet ImageNet Large Scale Visual Recognition Challenge ImageNetという大規模な画像データセットを用いた一般物体認識のコンペティション。
人工知能分野の問題
- トイプロブレム 簡単なルールがあるおもちゃ問題しか解けない
- モラベックのパラドックス 数式が解けたとしても、実は人間が無意識になっている認識や運動を実現することこそが非常に難しいよ
- チューリングテスト チューリングさんが言った、チャットして相手がコンピューターと見抜けなければ知能があるとする判定方法。イライザが話題に。
- 強いAI、弱いAI 哲学者ジョン・サール 心を持つ汎用AIが強いAI,持たなければ弱いAI。 一見会話が成立しているように見えても実は意味を理解していないんじゃあかんやろ
- 知識獲得のボトルネック Cycプロジェクトのこと、膨大なコストと時間がかかる
- フレーム問題 「今解こうとしている問題に関係のあることだけを呼び出す」ことが難しいという問題。 「ロボットが時限爆弾を上に乗せたバッテリーを洞窟の中から運び出す」というのが例。
- シンボルグラウンディング問題(記号接地問題) 「しま」の意味と「馬」の意味を理解し、初めてシマウマを見たときに「アレガ、シマウマか」と理解することが難しいという問題
- 特徴量設計 適切な特徴量を抽出することが重要であり、知見ナレッジ経験が必要な職人技になるかも
- ノーフリーランチ定理 どんな問題に対しても万能な汎用アルゴリズムなんて無い。という定理
- シンギュラリティ(技術的特異点)
2045年、コンピューターが人間を上回る年、ここが特異点です。
確率統計
確率
- 自己情報量 ある事象が起きたと知ることでどれだけの情報量が得られるのか。を数値化したもの。 確率が小さい事象ほど、実際に起きたことを知ることで得られる情報量は大きい。 各自に起きる事象を知ったとしても得られる情報量はゼロ。
- エントロピー 熱力学の言葉でもある。事象が起きたと知ることによって、平均どれだけの情報量を得られるか。を数値化したもの。 事象の起こる確率と自己情報量を掛け合わせたものの総和。で求める。 全ての事象が等確率のときエントロピーは最大をとる。
- 相互情報量 2つの確率変数がどの程度関連を持つのか。を数値化したもの。 つまり、相互情報量は不確実性(エントロピー)の減少量とみなすことができる。
- 交差エントロピー 2つの確率分布がどれくらい離れているか。を数値化したもの。 交差エントロピーが小さくなるように学習をしてモデルの制度をあげるわけ。
行列、線形代数
機械学習
教師あり
回帰問題と分類問題がある。 - 線形回帰 - ロジスティック回帰 ・二値分類ロジスティックでは、シグモイド関数で出力値が0〜1に収まるように正規化する。 ・多項分類ロジスティックでは、ソフトマックス関数で出力値が合計で1になるように正規化する。 ・説明変数の重みの算出に尤度関数を用いる - サポートベクターマシン(SVM) ・マージンを最大化することで最適な境界線を引く。 ・マージンとは学習データのうち最も決定境界線に近い点と境界線との距離。 ・例外データを許さない線引きをハードマージン、許容するのをソフトマージンと呼ぶ。 ・ソフトマージンにおいて誤分類を寛容するためにスラック変数というものを使う。 ・非線形の境界線はカーネル法と呼ばれる。 ・カーネル法のサポートベクターマシン、このカーネル法の計算量を削減する方法をカーネルトリックという。 - 決定木 ・条件分岐で分類していく ・情報利得の最大化という考え。 - ランダムフォレスト - アンサンブル学習 ・性能の低い学習器を組み合わせて高性能の学習器を作る方法。 ・バギングとブースティングがある。 ・バギングとは弱学習器を並列に組み合わせる方法。 ・バギングの代表例がランダムフォレスト。 ・ブースティングは並列ではなくて直列に組み合わせていく方法。 ・ブースティングの代表例が勾配ブースティング。 - 勾配ブースティング - ベイジアン学習 ・条件付き確率を利用した機械学習アルゴリズム。 ・結果から原因を推論する。 ・スパムメールフィルターやレコメンデーション機能につかわれる。 ・ベイズの定理。事象Bが起こった時に条件Aであった事前確率P(A|B)を推算する式。 ・尤度(ゆうど)、最もらしさの指標。ロナルドフィッシャー。 - ナイーブベイズ ・シンプルで処理が高速。文書分類やスパムフィルタに使われうる。 - k近傍法(k-NN法) ・クラスタリング ・あらかじめクラス分けされた教師データを元に、新しいデータが入ってきた時に、最も近いk個データのクラスから多数決で分類する方法。 - 時系列分析 - 自己相関 ・過去の地震の変数と相関関係にあるもの。その相関係数を自己相関係数という。ラグhの自己相関とかいう。 - 定常性 - MA(Moving Average)(移動平均)モデル ・ホワイドノイズとラグ1のホワイドノイズに重みづけしたもの。 - AR(Autoregressive:自己回帰)モデル - ARMAモデル ・MAモデルとARモデルを組み合わせた - ARIMAモデル(自己回帰和分移動平均) ・ARMAに加えて時系列の階差もつかう。 - 単位根過程 ・非定常性&わかりにくい時系列データ - クラスタリング
教師なし
- 次元削減 ・より少ない次元でデータを理解する
- 主成分分析(Primar- y Component Analysis) ・一番正の相関がある方向を第一主成分軸とし、それと垂直の方向を第2主成分とする。 ・第一主成分軸を回転させ、x軸となるように回転させ、その状況において、第二主成分軸をy=0(つまりx軸上)に落とす。これによって次元圧縮ができ計算が早くなる。 ・主成分分析の結果は主成分の清戸を表す主成分得点(スコア)と、観測変数との相関性を表す主成分負荷量で評価できる。
- t-SNE法 これも高次元データを次元圧縮する手法 ・t:t分布 ・S:確率的 ・N:隣接 ・E:埋め込み
- クラスタリング
・対象データを幾つかのクラスタに分類する
・k−means法
・データをk個のクラスタに分類し、各クラスタの重心に一番近い点をそのクラスの代表ということにして、どんどんデータ代表を作り出すことでデータを減らして計算を早くできる。
・データの凝集でシルエット法ともいう。しデータを減らすことはエルボー法ともいう。
半教師あり
強化学習
エージェントがより高いゲームスコア(報酬)を得るために何度もなんども挑戦する。
前処理
- 正規化 データの値が0~1などの指定範囲に収まるように加工する。 画像処理における色の濃さを調整する処理などがある。
- 標準化 データの平均が0、分散が1になるように、値を加工する
- ハイパーパラメータ 学習における初期値やモデルのニューロン数など、学習に影響する学習前に決めておく値。
- バッチサイズ 1000件のデータセットを200件ずつのデータセットに分けた場合、バッチサイズは200となる。 200件の学習を5回できるので、この場合、イテレーション数は5となる。 すべての訓練データを学習すると1エポックとなる。
- 汎化誤差 ・未知のデータに対する予測と実際の差。 ・バイアス、バリアンス、ノイズの3要素になる。 ・バイアスは、予測モデルと学習データとの差の平均を数値化したもの。予測モデルが単純すぎるとどんどんずれが大きくなっていく。 ・バリアンスはその逆で、モデルが複雑すぎて汎化できてないモデル。 ・ノイズは、削除不能な誤差、余計なデータが混ざってる。
- 誤差関数
正解ラベルと予想の近さを評価します。
ディープラーニングの特徴
- ニューラルネットワーク ・事前に特徴量を設定せずとも、学習しながら特徴量を得ることができる。
- 近似
- 内部表現 ・観測データから本質的な情報を抽出した特徴のこと。
- エンドツーエンド学習 ・ニューラルネットワークは特徴量の設計とその後の処理をまとめて自動的に行うE2E学習雨ができるようになった。
多層パーセプトロン
ニューラルネットワークの最も基本的なもの。 層状にユニットニューロンが並んでいて隣接層間のみで結合している。あの形 - 重み $$w_n$$ - バイアス $$b$$ - 活性化関数 $$f(u)$$ 各出力x1,x2,x3,x4とある時、それぞれに重みw1,w2,w3,w4をかけたものの総和に、 バイアスbを足した値uを求める。 そしてこのuが活性化関数fによって変換されて、次の層ユニットへの入力zになる。 $$u=w_1x_1+w_2x_2+w_3x_3+w_4x_4+b $$ $$z=f(u) $$
出力層の活性化関数
- 単純パーセプトロン
- ステップ関数
- 回帰
- 恒等関数
- 他クラス分類
- ソフトマックス関数