ソニックの部屋

主にプログラミングに関する記事を投稿します

「機械学習&ディープラーニングのしくみと技術がしっかりわかる教科書」を読む

気になった用語等をまとめる

第1章_人工知能基礎知識

学んだこと

  • 人工知能とは人と同じような知的処理を行うことができる機械のこと
  • 機械学習人工知能の一つで入力されたデータを元に数値を予測したりすること
  • 機械学習のプロセスは、
    • ①期待される出力データと学習モデルが計算した結果を比較
    • ②期待される出力データに近づくように学習モデルを修正
  • 機械学習の問題は分類と回帰に分けられる
    • ①分類はどのデータがどの種類に属するかを見る(=離散値)
    • ②回帰はデータの傾向を見る(=連続値)
  • 深層学習は脳の神経回路を模したニューラルネットワークと呼ばれる学習モデルを用いる 機械学習のこと
  • 機械学習との違いは深層学習は学習モデルが自動的に「特徴量」(ex. 音声データの「声の高さ」、「大きさ」など)を抽出すること

第2章_機械学習の基礎知識

学んだこと

  • 教師あり学習とは答え(ラベル)が含まれたデータをモデルに学習させる方法のこと
    • モデルとは人工知能の脳にあたる部分のこと
    • 最終的な目標は「ラベルのないデータ(テストデータ)を正解させる」こと
  • 教師なし学習とは答え(ラベル)が含まれないデータ(学習データのみ)をモデルに学習させる方法のこと
    • 最終的な目標は「データの特徴をとらえる」こと
    • クラスタリング(データの中から特徴の似ているデータをグループ毎に分ける)が可能
    • 次元削減(データから重要な情報だけを抽出し重要でない情報を削減する)が可能
  • 強化学習とは正解を与えなくても試行錯誤を繰り返しながら最適な行動をするように学習する手法のこと
    • 報酬が高くなるように行動するように仕向ける
  • データを説明するのが統計、データを予測するのが機械学習

第3章_機械学習のプロセスとコア学習

学んだこと

  • モデルは箱であり関数にあたる
  • アルゴリズムは関数の計算をしている
  • バッチ学習は一括学習、オンライン学習は逐次学習
  • 未知のデータに対する予測の精度のことを汎化性能という
  • 汎化性能を検証する上で重要なのは学習データを検証に使わないこと(学習データとテストデータは分ける)
  • 学習データとテストデータの分け方は色々あるが、K-分割交差検証(K-fold, クロスバリデーション)が良く使われる
  • 学習結果に対する評価基準
    • 回帰モデルは予測値と正答値の差である予測誤差を集計する(RMSE(平方平均二乗誤差)など)
    • 分類モデルは混同行列で集計する(F値(f-score)など)
  • パラメータは直線の傾きなどモデルの具体的な値、ハイパーパラメータは何次式にするかモデルの大枠の値
  • 未学習は学習が十分に行われておらず性能が低い
  • 過学習は学習データに対する精度向上を重視することでテストデータに対する精度が下がる
  • ハイパーパラメータを自動で決める手法をオートチューニングという
  • 機械学習ではモデルの中身がブラックボックスとなるため振る舞いの監視が重要

第4章_機械学習アルゴリズム

学んだこと

  • 回帰とは「データに最もフィットする線を引くこと」
  • 回帰分析には単回帰、重回帰、多項式回帰などがある
  • 外れ値の多いデータにはロバスト回帰が有効
  • 正則化過学習を抑える(リッジ回帰、ラッソ回帰)
  • サポートベクターマシン(SVM)はデータを最も引き離す境界線を引くための手法
  • サポートベクター(ベクトル)は境界に最も近いデータのこと
  • マージンはサポートベクターと境界の距離のこと
  • SVMはこのマージンを最大化する
  • 決定木はYES or NOの条件によって予測を行う方法
  • アンサンブル学習は精度の低いモデルを複数合体させ高精度のモデルを作る
  • ロジスティック回帰(シグモイド関数)はYES or NOの確率を計算し予測する(教師あり学習・分類)
  • ベイズ推定は不確実性を考慮し予測だけでなくデータの発生構造にも関心がある
  • 機械学習の区分
  • k
  • 主成分分析は次元削減による情報損失量が小さくなる軸を選び情報の損失を最小限にすること
  • 最適化はある関数(目的関数)の最大または最小となる解を求めること

第5章_ディープラーニングの基礎知識

学んだこと

第6章_ディープラーニングのプロセスとコア技術

学んだこと

  • 順伝播は入力から出力へと情報が伝わっていく流れ
  • 遡って正解と出力値の誤差を小さくしていく(各ノードの重みやバイアスを修正)のが誤差逆伝播
  • 誤差の和である損失関数(目的関数)の値が小さくなるように各ノードの重みを修正する(=学習ないし最適化)
  • 最適化の有名なものに勾配降下法がある
  • 縦軸に「損失関数」、横軸に「重み・バイアス」とし、「下に凸のグラフ」の最小値が最適解とする(=勾配を下っていき平になったら終了)
  • つまり最適化には関数を微分した値(勾配)を使う
  • 勾配は出力側から入力側に伝わっていき(誤差逆伝播法)、層を通過するたびに通過層の勾配が掛けられる
  • 勾配消失問題は「小さな勾配が掛け合わされて最終的に入力側でゼロになる問題」のこと
  • 転移学習は既存モデルの知見を新モデルに移して学習する方法

第7章_ディープラーニングアルゴリズム

学んだこと

  • 畳み込みニューラルネットワーク(CNN)
    • 多次元配列のピクセル同士の位置関係を保持して処理が可能
    • 入力層で位置関係を保持したままデータを取り込むため後段の層で位置関係を生かした処理が可能
    • 画像認識で良く使われる
    • 畳み込み層、プーリング層、全結合層の3つから構成
    • 畳み込み層は特徴マップを生成
    • プーリング層はデータを圧縮
    • 全結合層は特徴量を抽出
  • 再帰ニューラルネットワーク(RNN)
    • データの順番を考慮して予測を行うことが可能
    • テキストデータで良く使われる
    • 色々なアルゴリズムあり
  • 強化学習について
    • モデルベースとモデルフローに大別
    • 前者は環境を考慮し後者は考慮しない
    • 色々なアルゴリズムあり
  • オートエンコーダ
    • 入力データと出力データが同じになるように学習させるNNW
    • 教師なし学習
    • データの次元削減を行うことができる
  • GAN
    • 存在しないデータを生成する
    • 教師なし学習
    • 2つのNNW(生成器と識別器)が競い合うことで学習する
  • 物体検出
    • 画像の中に何が写っているかを認識する技術

第8章_システム開発と開発環境

学んだこと

  • 機械学習は「データ取得」→「前処理」→「機械学習」の手順となり各々でのライブラリ(NumPyなど)の使用が重要
  • ディープラーニングフレームワーク(TensorFlowなど)を使って処理できることが重要
  • 機械学習は並列処理が苦手なCPUでなく得意なGPUにやらせる(Google Colaboratoryなどの仮想環境を使う)
  • 「データ取得」と「前処理」はユーザ側でやり「機械学習」は外部サービスを利用する手もあり

参考文献
機械学習&ディープラーニングのしくみと技術がしっかりわかる教科書
株式会社アイデミー (著), 山口 達輝 (著), 松田 洋之 (著)/技術評論社/2022