G検定合格を目指してチートシートを作成中。
解説対象はG検定公式テキストの太字キーワードです。
Index
4章_機械学習の代表的な手法
- 教師あり学習(Supervised Learning)
- 教師なし学習(Unsupervised Learning)
- 強化学習(Reinforcement Learning)
教師あり学習(回帰問題・分類問題)
教師あり学習(Supervised Learning)は、AI(機械学習)がデータを学習するときに「正解」を与えられる学習方法です。
例えば、手書きの数字を認識するAIを作るとき、たくさんの手書き画像と「これは1」「これは2」という正解ラベルをセットで学習させることで、AIは新しい手書き画像の数字を予測できるようになります。
回帰問題
回帰問題(Regression)は、数値を予測する問題のことです。
- 例:気温のデータから明日の気温を予測する
- 例:家の広さから価格を予測する
AIが「数値の結果」を出すときは回帰問題になります。
分類問題
分類問題(Classification)は、いくつかのカテゴリーに分類する問題のことです。
- 例:メールが「スパム」か「通常メール」かを判定する
- 例:画像が「犬」「猫」「鳥」のどれかを判定する
「どのカテゴリに属するか」を予測するのが分類問題です。
教師なし学習
教師なし学習(Unsupervised Learning)は、正解がないデータからAIが自分でパターンを見つける学習方法です。
- 例:ECサイトの顧客データを分析し、「似た行動をとるグループ」を自動的に分類する
教師なし学習の主な用途:
- クラスタリング(グループ分け): 顧客の購買パターンから「似た行動をするグループ」を発見する
- 次元削減: データをシンプルに整理し、必要な特徴だけを抽出する
強化学習
強化学習(Reinforcement Learning)は、AIが試行錯誤を通じて最適な行動を学ぶ学習方法です。
- 例:囲碁AIやロボット制御では、AIが何度もプレイして「勝った」「負けた」という結果から学習し、より良い行動を取れるようになります。
強化学習の特徴:
- 明確な「正解データ」は与えられない
- 報酬(Reward) を最大化するように学習する
- ゲームや自動運転などに応用される
教師あり学習 代表的な手法
線形回帰
線形回帰は、入力変数と出力変数の間の線形関係をモデル化する教師あり学習の基本的手法です。目的変数を説明変数の線形結合で表現し、最小二乗法を用いて誤差を最小化することで回帰係数を求めます。
- ラッソ回帰: L1正則化を用いた線形回帰。不要な特徴量の係数を完全に0にするため、特徴量選択の効果があります。スパースなモデルが得られるため、モデルの解釈性が向上し、過学習を防ぐことができます。
- リッジ回帰: L2正則化を用いた線形回帰。係数の二乗和にペナルティを課すことで、係数の値を小さくしつつも0にはせず、過学習を防ぎます。多重共線性の問題に効果的であり、より安定した予測が可能になります。
ロジスティック回帰
ロジスティック回帰は、分類問題に用いられる教師あり学習アルゴリズムで、確率的な手法を用いてデータのクラスを予測します。
- シグモイド関数: 入力値を0〜1の確率に変換する関数。ロジスティック回帰の決定関数として用いられ、分類問題に適用されます。
- 正例/負例: 二値分類において、それぞれ「1(正クラス)」と「0(負クラス)」に該当するデータポイントのこと。
- 閾値: 予測確率が0.5以上なら正例、0.5未満なら負例と分類する判断基準。
- ソフトマックス関数: シグモイド関数を多クラス分類に拡張したもので、各クラスの確率を出力し、最も高い確率を持つクラスを選択します。
ランダムフォレスト
ランダムフォレストは、複数の決定木を組み合わせたアンサンブル学習手法で、精度と汎化性能を向上させます。
- 決定木: データを特徴量に基づいて分岐し、条件を満たすデータのグループを作成するモデル。直感的で解釈しやすい。
- ブーストラップサンプリング: データセットからランダムにサンプルを選び、それを用いて異なる決定木を構築する手法。
- 多数決: 分類問題では各決定木の予測結果を集計し、最も多く予測されたクラスを最終予測とする。
- アンサンブル学習: 複数のモデルを組み合わせることで、単体モデルよりも高い精度を実現する手法。
- バギング: 各モデルが異なるデータサブセットで学習し、それらの予測結果を統合することで過学習を抑制する手法。
ブースティング
ブースティングは、弱学習器(精度の低いモデル)を連続的に組み合わせ、より強力なモデルを作る手法です。
- 勾配ブースティング: 前のモデルの誤差を学習することで、次のモデルがその誤差を補正するように訓練されます。一般的な実装にはXGBoostやLightGBMなどがあります。
- 精度向上: 単一モデルよりも予測精度が高くなるが、計算コストが増加し、過学習のリスクもあります。
サポートベクターマシン(SVM)
サポートベクターマシンは、データを高次元空間にマッピングし、クラス間の境界を最適に決定する分類アルゴリズムです。
- マージン最大化: クラス間の距離(マージン)を最大化することで、汎化性能を高め、未知データへの適応能力を向上させます。
- カーネル関数: 非線形データを高次元空間に変換し、線形分離を可能にする関数。代表例としてRBFカーネルやポリノミアルカーネルがあります。
- カーネルトリック: 高次元空間での計算を効率的に行うための技術。内積の計算を行うことで、計算負荷を抑えながら複雑なデータを扱うことができます。
ニューラルネットワーク
ニューラルネットワークは、脳の神経回路を模した機械学習モデルで、特に深層学習で活用されます。
- ニューロン: 入力を受け取り、重みを適用し、活性化関数を通じて出力を生成する基本単位。
- 神経回路: ニューロン同士が接続された構造。
- 単純パーセプトロン: 基本的なニューラルネットワークで、単一の層で線形分類を行います。
- 入力層/出力層: 入力データが流入する層と、最終的な結果を出力する層。
- 重み: 各接続の重要度を示すパラメータで、学習過程で調整されます。
- 多層パーセプトロン: 隠れ層を持つニューラルネットワークで、より複雑なパターンを学習可能。
- 隠れ層: 入力層と出力層の間に存在し、データの特徴を抽出します。
- 誤差逆伝搬法: 出力の誤差を各層に逆伝播させ、重みを修正する学習アルゴリズム。
自己回帰モデル
自己回帰モデルは、時系列データの過去の値を用いて将来を予測する手法です。
- ARモデル: 過去の観測値の線形結合で現在の値を予測する統計モデル。
- 時系列データ: 時間順に並んだデータで、株価や天気などの変動データが該当します。
- 時系列分析: 時間とともに変化するデータを解析する手法で、トレンドや季節性を考慮。
- ベクトル自己回帰モデル(VARモデル): 複数の時系列変数を同時に扱い、それらの相互関係をモデル化する手法。
教師なし学習 具体的な手法
階層なしクラスタリング
クラスタリングとは、データを似たもの同士のグループ(クラスタ)に分ける手法です。その中で「階層なしクラスタリング」は、データをあらかじめ決めた数のクラスタに分類する方法で、クラスタの階層構造(親・子の関係)を考えません。
代表的な手法として k-means法 があります。k-means法では、まずk個のクラスタの数を決め、ランダムにk個の中心点を設定します。その後、各データ点を最も近い中心点のクラスタに割り当て、クラスタの中心点を再計算。この過程を繰り返し、分類が安定するまでクラスタを調整します。k-means法は計算が速い反面、クラスタの数(k)を事前に決める必要があります。
クラスタリングの結果を活用する クラスタ分析 では、例えば顧客データを基に「価格重視」「品質重視」「ブランド重視」などのグループを識別したり、SNSの投稿を「ポジティブ」「ネガティブ」「ニュートラル」に分類することで、マーケティングやデータ分析に役立てることができます。
階層ありクラスタリング
階層ありクラスタリングは、データをツリー構造のように階層的に分類する手法です。小さなクラスタを統合し、大きなクラスタを形成していくのが特徴です。
その代表的な手法が ウォード法 であり、これはクラスタ間のばらつきを最小にするように統合を進める方法です。この手法を用いることで、均一でバランスの良いクラスタを作ることができます。
階層ありクラスタリングの結果を可視化する デンドログラム(樹形図)は、データがどの順番で統合されたのかを示します。デンドログラムを分析することで、どこでクラスタを区切るかを判断しやすくなり、適切なクラスタ数を決定する手助けになります。例えば、顧客の購買データを分類する際にデンドログラムを使うと、購買傾向が似ている顧客グループを特定できます。
主成分分析
主成分分析(PCA:Principal Component Analysis) は、大量のデータを少ない重要な特徴に圧縮する手法です。例えば、100種類のアンケート回答データを2~3つの主要な軸に要約し、データの構造を簡単に理解できるようにします。
PCAの計算には 特異値分解(SVD) が用いられ、データの特徴を「重要な部分」と「あまり影響のない部分」に分解することで、効率的な次元削減が可能になります。また、データの関係性を可視化する手法として 多次元尺度構成法(MDS) があります。MDSは、例えば商品の類似性分析に用いると、似た商品が近くに表示されるようなマップを作成できます。
さらに、高次元データを2次元や3次元に可視化する手法として t-SNE(t-distributed Stochastic Neighbor Embedding) があります。t-SNEは、似たデータを近くに、異なるデータを遠くに配置するため、PCAよりも直感的にデータの分布を理解しやすいという特徴があります。特に画像認識や自然言語処理でよく用いられます。
協調フィルタリング
協調フィルタリング(Collaborative Filtering) は、ユーザーの行動データを基に「おすすめ」を作る手法であり、Amazonの「この商品を買った人は、こんな商品も買っています」やNetflixの「この映画を見た人は、こんな映画も好きです」といったレコメンデーションシステムに活用されています。
このような仕組みを レコメンデーション と呼び、ユーザーの購入履歴や閲覧履歴から、次に関心を持ちそうな商品やコンテンツを提案します。
一方で、協調フィルタリングには コールドスタート問題 という課題があります。これは、新しいユーザーや新しい商品のデータが不足しているため、適切な推薦ができない問題です。例えば、新規ユーザーにはまだ購入履歴がないため、個別の好みに合ったおすすめが難しく、新しく追加された映画には視聴履歴がないため、関連するおすすめが生成しづらいという状況が発生します。
この問題を回避する方法の一つが コンテンツベースフィルタリング です。これは、ユーザーの好みに似た商品やコンテンツを推薦する方法で、例えば映画のジャンルや出演者のデータを用いて、ユーザーが興味を持ちそうな映画を推薦することが可能になります。協調フィルタリングとは異なり、他のユーザーのデータに依存せずに推薦を行えるのが特徴です。
トピックモデル
トピックモデル(Topic Modeling) は、大量のテキストデータから「どんな話題が含まれているか」を分析する手法です。例えば、ニュース記事を自動で「政治」「経済」「スポーツ」などのカテゴリに分類したり、SNSの投稿を「ポジティブ」「ネガティブ」「中立」に分類する際に活用されます。
この分野で代表的な手法が 潜在的ディリクレ配分法(LDA:Latent Dirichlet Allocation) です。LDAは、文書をいくつかの「隠れたトピック」の組み合わせとして表現し、各単語がどのトピックに属するかを確率的に求めます。
例えば、ニュース記事を分析した場合、AIが「この記事は30%が経済、50%が政治、20%がスポーツ」と識別し、各単語の出現頻度を元にトピックを自動で割り当てます。LDAを活用することで、大量のテキストデータの分類や検索精度の向上が可能になります。
強化学習
強化学習
強化学習(Reinforcement Learning, RL)は、試行錯誤を通じて最適な行動を学ぶAIの学習手法です。ゲーム、ロボットの動作、株取引の最適化など、さまざまな分野で活用されています。
強化学習の流れ:
- エージェント(AI)が環境の中で行動する。
- 環境から報酬(Reward)を受け取る。
- 「より高い報酬を得る行動」を学習する。
割引率(Discount Factor)
割引率(γ, gamma)は、未来の報酬をどれだけ重要視するかを決めるパラメータです。
- γ = 0 に近い → 目先の報酬を重視し、短期的な成功を目指す。
- γ = 1 に近い → 将来の報酬を重視し、長期的な成功を目指す。
例えば、自動運転AIが「すぐに速く走る」か「安全運転を優先する」かを学習する際、割引率の設定が重要になります。
パンディットアルゴリズム
パンディットアルゴリズムは、「バンディット問題(Bandit Problem)」を解くための手法であり、限られた試行回数の中で「どの選択肢が最も良い結果を生むか」を学習します。
応用例:
- 広告のクリック率を最大化するために、どの広告を表示すればよいかを学習する。
- スロットマシンの攻略で、どの台が一番当たりやすいかを学ぶ。
活用・探索のトレードオフ
パンディット問題では、「すでに良いとわかっている選択肢(活用)」と「新しい選択肢を試してみる(探索)」のバランスが重要になります。
- ε-greedy方策: 例えば90%の確率で最も良い選択肢を選び(活用)、10%の確率でランダムに選択肢を試す(探索)。シンプルで実装しやすいが、最適解を見つけるのに時間がかかる場合がある。
- UCB(Upper Confidence Bound)方策: 「試行回数が少ない選択肢を優先的に試す」戦略。報酬が大きそうな選択肢を選びつつ、新しい選択肢も適度に試すことで、探索と活用のバランスをとる。
マルコフ決定過程(MDP)
マルコフ決定過程(Markov Decision Process, MDP)は、強化学習で用いられる数理モデルで、「どの状態で、どんな行動をすると、どんな報酬を得るか」を定義します。
MDPの要素:
- 状態(State, S): AIがいる状況(例:ゲームの盤面、ロボットの位置)。
- 行動(Action, A): AIが取れる選択肢(例:前進・後退・ジャンプ)。
- 報酬(Reward, R): 行動によって得られるスコア。
- 遷移確率(P): ある状態から次の状態に移る確率。
- 割引率(γ): 未来の報酬の価値をどれくらい考慮するか。
マルコフ性
「次の状態は、現在の状態だけに依存する」という性質。つまり、過去の情報をすべて覚えていなくても、現在の状態だけで意思決定ができるという考え方。
価値関数と強化学習手法
価値関数は、「どの状態や行動が、どれくらいの報酬をもたらすか」を表す関数です。
- 状態価値関数(V関数): ある状態 ss にいるときに、将来的に得られる報酬の期待値を表す。
- 行動価値関数(Q関数, Q値): ある状態 ss で、行動 aa をとったときに得られる報酬の期待値。
Q学習(Q-learning)
Q学習は、行動価値関数(Q関数)を使って最適な行動を学習する手法で、経験からQ値を更新していきます。
SARSA(State-Action-Reward-State-Action)
Q学習に似ていますが、次の行動を考慮してQ値を更新する手法で、安全な学習を行うことが多い。
方策勾配法と関連手法
方策勾配法(Policy Gradient Method) は、「行動を決める確率(方策)」を直接学習する強化学習の手法です。
REINFORCE
方策勾配法の基本的なアルゴリズムで、「良い行動をとる確率を増やす」ことで、最適な行動を学習します。
AlphaGo
Google DeepMindが開発した囲碁AI。強化学習と深層学習を組み合わせ、自己対戦を繰り返して学習することで高いパフォーマンスを発揮しました。
Actor-Critic
「行動を決める部分(Actor)」と「行動を評価する部分(Critic)」を分けた手法。
- Actor: どの行動をとるか決める。
- Critic: その行動の良し悪しを評価する。
A3C(Asynchronous Advantage Actor-Critic)
Actor-Criticの改良版で、複数のAIが同時に学習する手法。計算効率が高く、大規模な問題に適しています。
機械学習のモデルの評価
機械学習モデルを作るだけでは不十分で、そのモデルが未知のデータに対してどれくらい良い予測ができるかを評価することが重要です。
評価のポイント:
- 過学習(Overfitting): 訓練データにぴったり合いすぎて、新しいデータではうまく予測できない状態。
- 未学習(Underfitting): データのパターンをうまく学習できていない状態。
- 汎化性能: 未知のデータに対する予測能力が評価基準として重要。
交差検証
交差検証(Cross Validation)は、モデルの評価をより正確に行うために、「訓練データ」と「テストデータ」に分割し、未知のデータに対するモデルの予測能力を評価する手法です。
主な手法:
- ホールドアウト検証: データを「訓練データ」と「テストデータ」に分け、訓練データでモデルを学習し、テストデータで評価する。ただし、データの分割方法によって結果が変わる可能性がある。
- k-分割交差検証: データをk個に分割し、k回の学習と評価を行う。各回ごとに異なるデータをテストデータとして使用し、すべての結果を平均してモデルの性能を評価する。データの偏りを防ぎ、より正確な評価が可能。
評価指標
分類モデルの性能を測る際、単なる正解率(Accuracy)だけでなく、目的に合った指標を選ぶことが重要です。
混同行列(Confusion Matrix): モデルの予測結果を「実際の値」と「予測値」の組み合わせで整理する表。
主要な評価指標:
- 正解率(Accuracy): 全予測のうち、正しく分類できた割合。ただし、クラスのバランスが悪い場合には適切な評価にならないことがある。
- 適合率(Precision): 「予測が陽性だったもののうち、本当に陽性だった割合」。スパムメール検出など「間違った予測を減らしたい」場面で重要。
- 再現率(Recall): 「実際に陽性だったもののうち、正しく陽性と予測できた割合」。がん検査のように「見逃しを減らすこと」が重要な場面で使う。
- F値(F1-score): 適合率と再現率のバランスをとる指標。
- F値 = 2 × (適合率 × 再現率) / (適合率 + 再現率)
ROC曲線・AUC
- ROC曲線(Receiver Operating Characteristic Curve): 「閾値を変えたときの分類性能の変化を示すグラフ」。縦軸が真陽性率(Recall)、横軸が偽陽性率(False Positive Rate)。左上に近いほど優れたモデル。
- AUC(Area Under Curve): ROC曲線の下の面積。AUCが1に近いほど優れたモデル。
モデルの解釈(LIME・SHAP)
機械学習の予測モデル(特にディープラーニング)は、ブラックボックス化しやすいため、「なぜこの結果になったのか?」を説明する手法が重要です。
- LIME(Local Interpretable Model-agnostic Explanations): 「特定のデータポイントに対する予測理由」を説明。
- 例:「なぜこの患者がガンだと診断されたのか?」を分析。
- SHAP(Shapley Additive Explanations): 特徴量ごとの影響を計算し、予測への貢献度を明確にする。
モデルの選択基準
オッカムの剃刀(Occam’s Razor): 「必要以上に複雑なモデルは避けるべき」という考え方。
- シンプルなモデルの方が過学習を起こしにくく、汎化性能が高い。
- 例:「家の価格を予測するモデル」において、不要な特徴量を追加しすぎると、データに依存しすぎた過学習が発生する。
赤池情報量基準(AIC: Akaike Information Criterion): 統計モデルの良さ(バランス)を測る指標。
- AIC = モデルの複雑さ + モデルの予測誤差
- 値が小さいほど良いモデルと判断できる。
- 異なるモデルのAICを比較し、最適なものを選択する際に使用。
過学習・正則化
- 過学習(Overfitting): 訓練データに適応しすぎて、新しいデータに対応できない状態。
- 未学習(Underfitting): データの特徴を十分に学習できていない状態。
- 正則化(Regularization): 過学習を防ぐための手法。
- ラッソ回帰(Lasso Regression): L1正則化を適用し、不要な特徴量の重みをゼロにする。
- リッジ回帰(Ridge Regression): L2正則化を適用し、特徴量の重みを小さくすることで過学習を抑制。
- Elastic Net: L1正則化とL2正則化を組み合わせた手法。
これらの手法を適切に用いることで、より汎化性能の高いモデルを構築することができます。
ニューラルネットワークとディープラーニング
多層パーセプトロン(MLP)
多層パーセプトロン(MLP: Multi-Layer Perceptron)は、ニューラルネットワークの基本的な構造で、入力層・隠れ層・出力層の複数の層(Layer)で構成されます。
- 入力層(Input Layer) → 隠れ層(Hidden Layer) → 出力層(Output Layer) という構造を持つ。
- 隠れ層 は、入力と出力の関係を学習し、適切な出力を導き出すための「重み(Weight)」を持つ。
- 単純パーセプトロン(1層のみのモデル)では線形分離しかできないが、多層にすることで 非線形分類 が可能になる。
ディープラーニング(深層学習)
ディープラーニング(Deep Learning)は、隠れ層を増やしたニューラルネットワークであり、「ディープニューラルネットワーク(DNN)」とも呼ばれます。
- 特徴:
- データの特徴を 自動で抽出 する(手動で特徴を設計する必要がない)。
- 大量のデータと計算資源 が必要。
- 活性化関数(ReLU, Sigmoid など) を使い、非線形な関係を学習できる。
- 活用分野:
- 画像認識、音声認識、自然言語処理など。
ニューラルネットワークにおける問題
- 誤差逆伝播法(Backpropagation):
- モデルを学習させるために、誤差を出力層から逆向きに伝播させ、重みを更新する手法。
- 勾配降下法(Gradient Descent)を用いて誤差を最小化する。
- シグモイド関数(Sigmoid Function):
- 0〜1の範囲に出力を制限する活性化関数。
- しかし、導関数が小さくなるため、層が深くなると 勾配消失問題(Vanishing Gradient Problem) が発生しやすい。
- 勾配消失問題:
- 層が深くなると誤差が伝わる途中で消えてしまい、学習が進まなくなる問題。
- ReLU(Rectified Linear Unit) などの活性化関数を使うことで解決。
オートエンコーダ
オートエンコーダ(Autoencoder)は、データの圧縮(エンコード)と復元(デコード)を行うニューラルネットワークです。
- ジェフリー・ヒントン(Geoffrey Hinton) によって開発された。
- 構造:
- エンコーダ(Encoder): 入力データを圧縮。
- 隠れ層(Bottleneck): 圧縮された情報を保持(特徴を抽出)。
- デコーダ(Decoder): 圧縮データから元のデータを再構築。
- 活用例:
- 画像のノイズ除去(Denoising Autoencoder)。
- 異常検知(Anomaly Detection)。
積層オートエンコーダ
積層オートエンコーダ(Stacked Autoencoder)は、オートエンコーダを 多層に積み重ねたモデル で、「ディープエンコーダ」とも呼ばれます。
- 事前学習(Pretraining) を行い、順番に学習していくことで、深い層の学習を安定させる。
ファインチューニング
ファインチューニング(Fine-tuning)は、学習済みモデルの重みを一部調整して、新しいタスクに適用する手法 です。
- 活用例:
- 画像認識のモデルを 別の画像データで再調整する。
- ロジスティック回帰層・線形回帰層 を追加し、最終的な出力を適切に変える。
- メリット:
- 重みの調整が必要だが、ゼロから学習するより少ないデータで精度を向上できる。
深層信念ネットワーク(DBN)
深層信念ネットワーク(DBN: Deep Belief Network)は、制限付きボルツマンマシン(RBM) を積み重ねたモデルです。
- 特徴:
- 事前学習 を行い、層ごとに学習を進める。
- 画像認識や異常検知などに活用される。
事前学習なしのアプローチ
深層学習を行う際、従来は 事前学習 を使っていたが、現在は 事前学習なし(End-to-End Learning) が主流になっています。
- 事前学習の課題:
- 計算コストが非常に高く、膨大なデータと計算資源が必要。
- 解決策:
- 転移学習(Transfer Learning)や 事前学習済みモデル を活用することで、計算コストを抑える。事前学習は最新の手法では見かけることがまずない。
まとめ
- 多層パーセプトロン(MLP) はニューラルネットの基本構造で、隠れ層が入力と出力を対応付ける。
- ディープラーニング は隠れ層を増やしたニューラルネットで、画像認識や自然言語処理に活用。
- 誤差逆伝播法と勾配消失問題 が深層学習の課題。
- オートエンコーダ はデータを圧縮・復元するモデル。
- ファインチューニング で学習済みモデルを別のタスクに転用。
- 深層信念ネットワーク(DBN) は事前学習を用いた深層学習モデル。
- 事前学習なしのアプローチ は計算コストが高いため、転移学習 が有効。
これらの知識を活用することで、ディープラーニングの理解と応用力を高めることができます。
5-3 ディープラーニングを実現するには
ムーアの法則
ムーアの法則とは、「半導体チップの性能と集積度(トランジスタ数)は、約18カ月ごとに2倍になる」という経験則です。長年にわたりコンピュータの進化を支えてきましたが、近年は物理的な限界により鈍化傾向にあります。
ディープラーニングでは膨大な計算が必要となるため、従来のムーアの法則に頼るだけでは性能向上が追いつかなくなっています。
CPU(Central Processing Unit)
CPUは、通常のコンピュータに搭載される汎用の中央処理装置であり、複雑な処理に対応できる柔軟性を持っています。しかし、大量の同時計算(並列処理)は苦手であるため、ディープラーニングのような用途では非効率です。
GPU(Graphics Processing Unit)
GPUは、もともと画像処理用に開発された計算装置で、同じ処理を大量に同時実行する 並列処理 に優れています。
ディープラーニングでは大量の行列計算が必要となるため、GPUの並列処理能力が学習時間の短縮に大きく貢献します。
GPGPU(General-Purpose computing on GPU)
GPGPUとは、グラフィックス以外の一般的な計算処理にもGPUを活用する技術・概念です。
NVIDIA社がこの分野の先駆者であり、CUDA という独自の開発環境を提供しています。GPGPUの登場により、GPUが機械学習や科学技術計算に活用され、ディープラーニングの普及を加速させました。
TPU(Tensor Processing Unit)
TPUは、Google社が開発したディープラーニング専用のプロセッサで、TensorFlowなどの機械学習フレームワーク向けに最適化されています。
- GPUよりも特化した設計 を持ち、低消費電力・高性能 を実現。
- Google Cloud Platform を通じて、一般ユーザーもクラウド経由でTPUを利用できます。
バーニーおじさんのルール
バーニーおじさんのルールとは、「計算リソースが2倍になれば、AIの性能(精度)は1ランク上がる」という経験則です。
この法則は、AIの性能向上にはアルゴリズムの改善だけでなく、計算資源の強化も重要であることを示しています。ディープラーニングの進化は、計算能力の拡大と密接に関係しています。
5-4 活性化関数
ニューラルネットワークでは、各ニューロンの出力に非線形性を加えるために活性化関数が用いられます。ここでは代表的な活性化関数とその特徴を整理します。
tanh関数(ハイパボリックタンジェント関数)
tanh関数は、シグモイド関数と似たS字型の活性化関数ですが、出力が -1 ~ 1 の範囲を取り、0を中心に対称である点が特徴です。
- 数式:
- メリット:出力が中心対称であるため、学習が安定しやすい。
- デメリット:出力が±1に近づくと飽和し、勾配が小さくなるため、勾配消失問題が発生しやすい。
- 過去には隠れ層の活性化関数としてよく用いられた。
ReLU関数(Rectified Linear Unit)
ReLU関数は、現代のディープラーニングにおいて最も一般的な活性化関数の一つです。
- 数式:
- メリット:
- 非常にシンプルで計算が高速。
- 勾配消失が起きにくく、深いネットワークでも学習が進みやすい。
- デメリット:
- 入力が0以下のときに勾配が完全に0になるため、学習が止まる「死んだニューロン(Dead Neuron)」が発生する可能性がある。
Leaky ReLU関数(およびそのバリエーション)
Leaky ReLUは、ReLUの弱点を補うために改良された活性化関数です。入力が0以下のときにもわずかな傾きを与えることで、死んだニューロン問題を回避します。
- 数式(Leaky ReLUの一例):
- (x > 0)
- (x ≤ 0)
- ※ は通常0.01など小さな定数
- バリエーション:
- Parametric ReLU(PReLU):負の傾き を学習によって最適化。
- Randomized ReLU(RReLU):学習時に をランダムに設定して使用(過学習の抑制にも効果)。
- メリット:
- ReLUの「0未満で勾配がゼロになる」という弱点を緩和。
- 深層ネットワークでも安定した学習が可能。
活性化関数の比較表
関数名 | 出力範囲 | 勾配消失への強さ | 計算の軽さ | 死んだニューロン対策 |
---|---|---|---|---|
tanh | -1〜1 | 弱い | やや重い | × |
ReLU | 0〜∞ | 強い | 非常に軽い | ×(0未満で停止) |
Leaky ReLU系 | ~∞ | 強い | 軽い | ○ |
これらの活性化関数を適切に選択することで、モデルの学習効率や性能に大きな差が生まれます。
5-5 学習の効率化
勾配降下法の問題と改善
勾配降下法(Gradient Descent)は、ニューラルネットワークなどの学習において損失関数を最小化するために用いられる基本的な最適化手法ですが、いくつかの問題点が存在します。
主な問題点
- 局所最適解(Local Minimum):損失関数が大域的には最小でないが、周囲よりは小さい値に陥ってしまう状態。最適な解にたどり着けないリスクがある。
- 大域最適解(Global Minimum):損失関数の中で最も小さい値をとる、本当に最適な解。勾配降下法はここに到達することを目指すが、保証されるわけではない。
- 鞍点(Saddle Point):一方向には上昇し、別の方向には下降するような点。勾配がゼロに近く、学習の更新が止まってしまう可能性がある。山でも谷でもないため、モデルが停滞しやすい。
- プラトー(Plateau):傾きがほぼゼロの平らな領域。勾配が小さすぎるため、パラメータの更新が進まず、学習速度が著しく遅くなる。
改善策:モーメンタム(Momentum)
モーメンタムは、過去の勾配情報を活用して学習を加速させる手法です。
- 現在の勾配だけでなく、「ひとつ前の勾配の影響も加味」してパラメータを更新することで、勢い(慣性)を持って進む。
- プラトーや鞍点を突破しやすくなり、最小値に向かって滑らかに進みやすくなる。
- モーメンタムの利用により、学習が安定しやすくなるため、多くの深層学習モデルで活用されている。
このように、勾配降下法の課題を理解し、改善策を適用することで、より効率的な学習が可能になります。
5-6 精度を高める更なるテクニック
過学習対策と学習の安定化手法
ドロップアウト(Dropout)
ニューラルネットワークの学習時に、ランダムに一部のニューロンをランダムに無効化する手法です。これにより、特定の重みに依存することが抑えられ、過学習(Overfitting)を防ぐ効果があります。
- 各学習ステップで異なるネットワーク構造が使われることになり、「小さなネットワークを複数訓練している」ような効果が得られる。
- これはアンサンブル学習的な働きを持ち、汎化性能の向上に寄与します。
早期終了(Early Stopping)
早期終了は、過学習をし始めているタイミング(テストデータに対する誤差関数が上がり始めている所)で学習を早めに打ち切るもの。学習を続けすぎると訓練データに過剰適合しやすいため、それを防ぐ目的があります。
- ノーフリーランチ定理(No Free Lunch Theorem):どんな問題にも通用する万能な学習アルゴリズムは存在しない。学習停止の最適なタイミングもケースバイケースである。
- 二重降下現象(Double Descent):学習が進みすぎて一度汎化性能が低下した後、さらに進めると再び性能が向上する現象。学習曲線が二重に下降するように見える。
正規化(Normalization)
正規化は、データやパラメータを一定の範囲に揃えることで、学習を安定化させる手法です。一番簡単なものは、各特徴量を0~1の範囲に変換する処理。
- 特にニューラルネットワークでは、入力や重みが極端な値になることを防ぎ、学習の効率や収束速度を改善します。
標準化(Standardization)
標準化は、各特徴量を 「平均0、分散1」 に変換する処理です。もとの特徴量の分布が正規分布なら、標準化によりその特徴量は標準正規分布に変換されます。
- 特徴量ごとのスケールが異なると、学習の進み方に偏りが出るため、標準化によってバランスを取ることが重要です。
白色化(Whitening)
白色化は、標準化に加え、特徴量間の相関を取り除く処理です。
- 平均0・分散1にするだけでなく、特徴量同士を直交させることで、特に高次元のデータを扱う際に学習の効率を高める効果があります。
重みの初期値の工夫
適切な初期値を与えないと、学習が進まない、あるいは不安定になる(勾配消失や発散)リスクがあります。
- シグモイド関数: 出力が0に集中しやすく、重みが大きすぎると勾配消失しやすい。そのため、Xavierの初期値がよいとされる。
- ReLU関数: 負の入力が0になるため、Heの初期値(標準偏差 の正規分布)がよいとされる。
バッチ正規化(Batch Normalization)
バッチ正規化は、各層において活性化関数をかける前に伝播したデータを正規化するという処理を追加。
- 過学習の抑制効果もあり、ドロップアウトと併用されることも多いです。
これらの手法を組み合わせることで、より安定的かつ高精度な学習が可能になります。
6-1 畳み込みニューラルネットワーク(CNN)
畳み込みニューラルネットワークとは?
CNN(Convolutional Neural Network)は、画像処理に特化したニューラルネットワークです。入力画像は通常、RGBの3チャンネル(=3次元)で表され、「高さ × 幅 × チャンネル」の構造を持ちます。
層を深くすることで、形・色・位置などの特徴を階層的に学習することができます。
ネオコグニトロン
1980年頃に提案された、CNNの原型となるモデルです。ヒトの視覚野を模倣した構造で、以下の2種類の細胞が使われています。
- S細胞(Simple cell):画像の濃淡パターン(特徴)の検出を行う。
- C細胞(Complex cell):位置ズレに強い特徴抽出(移動不変性)を行う。
LeNet
1990年代に登場した、CNNの初期モデル。手書き文字認識に使用されました。
- 畳み込み層+プーリング層+全結合層から構成される。
- プーリング層により画像サイズを縮小しつつ、重要な特徴を抽出する構造が特徴です。
畳み込み層
- 畳み込み層(Convolution Layer)は、フィルタを用いて画像から特徴を抽出する操作。
- フィルタ(カーネル)という小さな重み行列を画像上でスライドさせて適用し、画像とフィルタの値をそれぞれ掛け合わせて総和をとっていく。
- 局所受容野:入力画像の一部の領域のみを見て処理する仕組み。
- この構造により、移動不変性(物体の位置が多少ずれても同じように認識できる性質)を獲得します。
プーリング層
- 畳み込み後の特徴マップを縮小し、計算量を削減。
- ノイズの影響を減らし、特徴を強調する。
- 主な手法:
- 最大プーリング(Max Pooling):局所領域の最大値を抽出。
- 平均プーリング(Average Pooling):平均値を抽出。
全結合層
- 特徴マップを1次元のベクトルにフラット化し、最終的な出力を行う層です。
- 最近の手法:Global Average Pooling(GAP)は、全結合層の代替手法で、各特徴マップの平均を取り、パラメータを減らしつつ過学習を抑制します。
データ拡張(Data Augmentation)
- 学習データに多様性を与えることで、過学習を防ぎ、汎化性能を向上させる手法。
- 主な方法:
- Cutout:画像の一部をマスク(黒く塗る)。
- Random Erasing:画像の一部をランダムに消去。
- Mixup:2枚の画像とラベルを線形混合。
- CutMix:画像の一部を切り取って別の画像に貼り付け、ラベルも合成。
CNNの代表的モデル
- AlexNet(2012):CNNのブレイクスルー。ReLU、GPU活用、ドロップアウトを導入。
- VGG(2014):3×3の畳み込み層を複数積み重ねたシンプルな構造。
- GoogLeNet(Inception):複数サイズのフィルタを同時に用いるInception構造を採用。
Skip Connection(スキップ接続)
- 層を飛び越えた結合。中間層をスキップして出力に直接つなぐ構造。
- 深いネットワークでも勾配が消えにくくなり、学習が安定する。
- 例:ResNet(Residual Network)
MobileNet
- モバイル端末など、計算資源の限られた環境向けの軽量・高速なCNN。
- Depthwise Separable Convolution(深さ方向分離畳み込み)により、通常の畳み込みを2段階に分けて、計算量を大幅に削減。計算量は1/8に。
空間方向はDepthwise Convolution(チャネルごとに畳み込み処理)
チャネル方向はPointwise Convolution(1×1の畳み込み処理)
活用事例:
📱 MobileNet
🧠 EfficientNet
📸 軽量画像処理アプリ
🤖 エッジAI(ラズパイ、マイコン等)
Neural Architecture Search(NAS)
ニューラルネットワークの最適な構造を自動で探索する技術です。
- NASNet:Googleが開発。精度と効率のバランスに優れる。
- MnasNet:モバイル向けに最適化された構造。
- EfficientNet:パラメータ数・計算量・精度のバランスが非常に良い。
転移学習とファインチューニング
- 転移学習(Transfer Learning):学習済みモデルの知識を別のタスクに活用。自分で付け足した層だけを学習する。少ないデータでも高精度な学習が可能。
- ファインチューニング(Fine-tuning):学習済みモデルの一部を再学習して特定のタスクに最適化。付け足した層だけではなくネットワーク全体を学習。既存の重みを活かすことで効率的にモデルを調整できる。
深層生成モデル
深層生成モデル
生成モデルとは?
生成モデルは、「学習データに似た新しいデータを作り出す」ことができるモデルです。
- ディープラーニングの進化により、画像・音声・文章など、さまざまなデータを人間が自然に感じる形で生成できるようになってきました。
識別モデルとの違い
- 識別モデル:入力に対して正しいラベルを予測する(例:分類、回帰)。
- 生成モデル:データの構造や分布を学習し、新しいデータを生成する。
変分オートエンコーダ(VAE:Variational Autoencoder)
特徴
- 通常のオートエンコーダは「圧縮して復元」するが、VAEは入力データを確率的な分布に変換する。平均と分散で表現するよう学習。
- 潜在変数(Latent Variable)の空間を通じて、連続的かつ滑らかなデータ表現を学習できる。
ポイント
- 潜在空間を学習してベクトルとして表現。ここからサンプリングすることで、似たような新しいデータを無限に生成可能。
敵対的生成ネットワーク(GAN:Generative Adversarial Network)
基本構造
- 生成器(Generator):偽のデータ(例:画像)を作成する。
- 識別器(Discriminator):それが本物か偽物かを判定する。
- これらが互いに競い合う(敵対的)構造によって、生成器の出力が自然でリアルなものへと進化していく。
DCGAN(Deep Convolutional GAN)
- GANに**畳み込みニューラルネットワーク(CNN)**を取り入れた構造。
- より高精度な画像生成が可能となり、GANの代表的な実装として広く使用されている。
Pix2Pix
Pix2Pixは、画像から別の画像への変換を行うペア画像変換型GANです。
例:
- 白黒画像 → カラー画像
- 線画 → 塗り絵
- 街の輪郭線 → 写実的な街並み
※学習には「入力画像」と「対応する正解画像(ペア)」のセットが必要です。
CycleGAN
CycleGANは、ペア画像がなくても画像スタイル変換を可能にするGANです。
例:
- 馬 ↔ シマウマ
- 写真 ↔ 絵画(例:モネ風、浮世絵風など)
特徴
- **サイクル一貫性損失(Cycle Consistency Loss)**を利用し、
- 変換 A → B → A’ が元のAに近づくように学習される。
- 入力と出力の明確な対応関係がなくても、変換モデルを学習できる点が大きな利点です。
生成モデルは、創造的なAI応用(画像生成、音声合成、文章生成など)の基盤となる重要な分野です。
6-3 画像認識タスクの基本
目的
画像の内容をAIが理解し、意味のある情報として出力することが目的です。
主なタイプ
- 画像分類:画像に含まれる物体のクラス名を予測。
- 物体検出:画像内の複数の物体の位置とクラス名を特定。
- セグメンテーション:画像の各ピクセルがどのクラスに属するかを分類。
物体クラスの名称を出力するタスク
これは画像分類の典型的な出力形式です。
- 入力画像 → クラス名(例:”dog”)
- 同時に、予測結果に対する**確信度(confidence)**も出力される(例:dog 92%)
確信度(Confidence)
AIがその予測にどれだけ自信を持っているかを数値で示します。
- 出力例:cat:0.80、dog:0.15、fox:0.05
- クラス数が多くなると、高い確信度を出すことが難しくなる傾向があります。
ILSVRC(ImageNet Large Scale Visual Recognition Challenge)
- 2010〜2017年に開催された大規模な画像分類コンペティション。
- 画像認識技術の進化を促し、多くの革新的なモデルを生み出しました。
代表的な画像分類モデルの進化
モデル名 | 特徴・技術的進化点 |
---|---|
AlexNet | 2012年 ILSVRC優勝。ReLU、ドロップアウト、GPU計算の活用により一気に精度が向上 |
VGG | すべての畳み込み層に3×3フィルタを使用し、シンプルかつ深い構造 |
GoogLeNet | Inceptionモジュールにより、複数サイズのフィルタを並列で使い、計算効率と精度を両立 |
ResNet | スキップ接続(残差接続)により、非常に深いネットワークでも学習が安定。2015年 ILSVRC優勝 |
Wide ResNet | ResNetの層を浅くしつつ幅を広げ、精度と計算効率のバランスを強化 |
DenseNet | 各層がすべての前層と接続されており、情報の再利用によって少ないパラメータでも高精度 |
SENet | 各チャンネルの重要度を学習する注意機構(SEブロック)を導入し、分類精度をさらに向上 |
補足:進化の背景と共通点
- 多くのモデルがILSVRCでの好成績をきっかけに注目されました。
- **深さの拡張(VGG・ResNet)**や、**構造の工夫(Inception・DenseNet)**により精度が向上。
- 現在では、これらのモデルをベースに転移学習や軽量モデルの設計が行われています。
コメントを残す