機械学習
明示的にプログラムしなくても学習する能力をコンピュータに与える研究分野
学習アルゴリズム
教師あり
知っていることを受け取り、知りたいことに変換する
学習データに偏りがあり、差別を生む場合がある
教師なし
データから構造を見つける
その構造が何であるかまでは分かりようがない
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
Large Language Models 大規模言語モデル
RAG
Retrieval-Augmented Generation 検索拡張生成
LLMに情報検索を組み合わせる
ファインチューニングはモデルに再学習させるのに対し、RAGはAIが参照するデータベース側に手を加える
AWSでRAG
Amazon BedrockでKnowledge basesを使う
S3にPDFなどのデータをアップ
埋め込みモデルを設定する
Cohore Embed
データを取り込んでベクトル変換
ベクトルDBを設定する
Amazon OpenSearch Serverless
結構高いので別サービスを検討
LLMにDBを参照させて回答を作成させる
英語で書かれた履歴書を解釈してプロフィールを返答してくれた
埋め込みモデルが多言語対応していれば質問した言語に合わせて翻訳して返してくれる