機械学習
- 明示的にプログラムしなくても学習する能力をコンピュータに与える研究分野
- 学習アルゴリズム
- 教師あり
- 知っていることを受け取り、知りたいことに変換する
- 学習データに偏りがあり、差別を生む場合がある
- 教師なし
- データから構造を見つける
- その構造が何であるかまでは分かりようがない
- SNSの興味関心、レコメンドシステム、類似した検索結果など
- パラメトリック
- パラメータの個数が決まっている
- ノンパラメトリック
- パラメータの個数が事前決まっておらず、データによって決まる
- 教師あり
- 分類問題
- 離散的な値を予測する
- スパムメール、写真から動物を見分けるなど
- 距離計算
- ユークリッド距離 Euclidean Distance
- 各次元の2点間の差の二乗和の平方根
- マンハッタン距離 Manhattan Distance
- 各次元の2点間の差の絶対値の和
- 碁盤の目の都市を移動する時のような測り方
- ハミング距離 Hamming Distance
- 各次元が同じかどうか
- スペルチェックなどに使われる
- ユークリッド距離 Euclidean 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: データセットとは適切に異なっている
- Generative Modeling Framework
- ファインチューニング
- 訓練済みのモデルを別のデータセットで再トレーニングして新しいタスク向けに微調整する
- LLM
技術