← 一覧

機械学習

  • 明示的にプログラムしなくても学習する能力をコンピュータに与える研究分野
  • 学習アルゴリズム
    • 教師あり
      • 知っていることを受け取り、知りたいことに変換する
      • 学習データに偏りがあり、差別を生む場合がある
    • 教師なし
      • データから構造を見つける
      • その構造が何であるかまでは分かりようがない
        • SNSの興味関心、レコメンドシステム、類似した検索結果など
    • パラメトリック
      • パラメータの個数が決まっている
    • ノンパラメトリック
      • パラメータの個数が事前決まっておらず、データによって決まる
  • 分類問題
    • 離散的な値を予測する
    • スパムメール、写真から動物を見分けるなど
    • 距離計算
      • ユークリッド距離 Euclidean Distance
        • 各次元の2点間の差の二乗和の平方根
      • マンハッタン距離 Manhattan Distance
        • 各次元の2点間の差の絶対値の和
        • 碁盤の目の都市を移動する時のような測り方
      • ハミング距離 Hamming Distance
        • 各次元が同じかどうか
        • スペルチェックなどに使われる
    • 決定木
      • ジニ不純度
  • 回帰問題
    • 連続的な値を予測する
    • 住宅価格、株価など
  • ロジスティック回帰
  • ハイパーパラメータ
    • 学習率、バッチサイズ、エポック数、モデルサイズ(隠れの層/ニューロンの数、パラメータの数)、正則化(ドロップアウト)
    • 手動で調整する
    • 自動で調整する
      • Grid Search
      • Random Search
  • 特徴エンジニアリング
    • Deep Learning with Python by Francois Chollet
    • 時計から時刻を読む
      • 生データ: ピクセルを読む
      • より良い方法: 短針と長針の先の座標
      • さらに良い方法: 針の角度
    • 問題を高次で理解できていれば、より良い特徴をアルゴリズムに入れられる
  • ディープラーニングが大抵の特徴エンジニアリングの必要性を取り去った
    • ディープラーニングは生データから使える特徴を自動で抜き取る
      • しかし特徴エンジニアリングを気にしなくて良い訳ではない
  • モデル
    • 上記のようなアルゴリズム、データ、パラメータで学習したオブジェクト
    • 入力データに対して出力データを導き出す仕組み
  • 識別モデルと生成モデル
    • 識別モデル
      • p(y|x) xがyに属する確率
    • 生成モデル
      • p(x) xが存在する確率
      • p(x|y) yに属するようなxを作れる
        • 存在しない人間の顔など
      • 決定的ではなく確率的
        • 毎回同じ出力では生成的とは言えない
  • Style Transfer
    • ゴッホの画風で画像を加工するとかのやつ
      • 通常のディープラーニングの発想と同じで、損失関数を最小化する
        • コンテンツとスタイルを数学的に定義できれば、適切な損失関数はこのようになる
          • loss = distance(style(reference_image) - style(generated_image)) + distance(content(original_image) - content(generated_image))
          • distanceはL2 norm
  • VAE
  • GAN
  • Generative Modeling
    • Generative Modeling Framework
      • データセット
      • よくわからない分布のPdataがある
      • 生成モデルPmodelがPdataを真似しようとする。これができたらPmodelからサンプリングしてPdataから描画されたように見える結果を生成できる。
      • Pmodelが下記の時に私達は感動する
        • ルール1: Pdataから描画されたように見える
        • ルール2: データセットとは適切に異なっている
  • ファインチューニング
    • 訓練済みのモデルを別のデータセットで再トレーニングして新しいタスク向けに微調整する
  • LLM
    技術