モジュール 1 ・ 目安 90 分
AI・機械学習・深層学習とは
はじめに — なぜ機械工学の学生が機械学習を学ぶのか
近年、材料の疲労寿命の予測、加工条件の最適化、外観検査の自動化、流体・構造解析のサロゲート(代理)モデルなど、機械工学のあらゆる現場に機械学習が入り込んでいます。有限要素解析を何時間もかけて回す代わりに、過去の計算結果を学習した関数がミリ秒で近い値を返す——そうした使い方はもはや珍しくありません。皆さんが将来、設計・生産・研究のどの道に進んでも、機械学習は「実験装置やCADと同じくらい当たり前の道具」になっていきます。
このモジュールでは、まず全体の地図を描きます。AI・機械学習・深層学習という言葉の関係、機械学習の中心にある「モデル=パラメータを持つ関数」という考え方、そして深層学習を成り立たせる4つの要素です。数式は最小限にとどめ、機械工学でおなじみの直感——曲線あてはめ、信号処理、最適化——に翻訳しながら進めます。最後には、次数を上げすぎた曲線あてはめが実験ノイズまで再現してしまう「過学習」を、スライダーを動かして自分の目で確かめてもらいます。
AI・機械学習・深層学習の関係
まず、よく混同される3つの言葉を入れ子として整理します。もっとも広いのが 人工知能(Artificial Intelligence) で、「人間の知的な働きを機械に行わせよう」という分野全体を指します。その中に、データから規則性を学び取る 機械学習(Machine Learning) があります。さらにその中に、多層のニューラルネットワークを用いる 深層学習(Deep Learning) があります。関係を式で書けば、
という包含関係です。深層学習はあくまで機械学習の一手法であり、機械学習はAIを実現する一つのアプローチにすぎない、という位置づけを押さえてください。
両者の違いを機械工学の言葉で言い換えてみましょう。従来のプログラミングは、設計者が「こういう入力ならこう出力せよ」という規則(ルール)を一つひとつ書き下す作業です。これは、はっきりした物理法則や仕様が分かっている問題に向いています。一方、機械学習は「入力と正解の例(データ)」を大量に与え、その対応関係を機械自身に見つけさせます。ネジの良品・不良品を人が言葉で定義するのは難しくても、良品と不良品の画像を何千枚も見せれば、機械が両者を分ける規則を自動的に獲得できる——これが機械学習の発想です。ルールを書くのではなく、例からルールを学ばせる。この主客の逆転が本質です。
もう少し身近な例で考えてみましょう。ある切削加工で、主軸回転数・送り速度・工具摩耗といった条件から、加工後の表面粗さを予測したいとします。表面粗さは温度・振動・材料のばらつきなど無数の要因が絡み合って決まるため、これを厳密な数式で書き下すのは容易ではありません。しかし、過去の加工記録——「この条件でこの粗さになった」という組——が数百件あれば、機械学習はその対応関係を関数として近似できます。物理モデルが複雑すぎて手に負えない、あるいは支配方程式がそもそも分からない。そんなときに「データから経験則を引き出す」機械学習が力を発揮します。逆に、単純な線形関係で説明できる問題にまで機械学習を持ち出す必要はありません。道具の得意・不得意を見極めることも、技術者の大切な判断です。
モデルとは — パラメータを持つ関数
機械学習の中心にあるのは モデル(Model) という考え方です。モデルとは、入力 から出力 を計算する関数で、その振る舞いを決める調整つまみを内部に持っています。この調整つまみを パラメータ(Parameter) と呼び、記号 (シータ)で表します。式で書けば、
です。セミコロンの右側の が「学習で調整される部分」、左側の が「その都度与えられる入力」を表します。
機械工学でおなじみの直線あてはめ を思い出してください。傾き と切片 がパラメータ にあたります。実験データにこの直線を合わせるとき、私たちは を動かして点群にもっとも近い直線を探します。機械学習の 学習(Training) とは、まさにこの「パラメータを良い値に調整する作業」を、はるかに多数のパラメータについて、自動で行うことにほかなりません。単純な直線ではパラメータは2個ですが、深層学習のモデルでは同じ の中に数百万〜数千億個のパラメータが詰まっています。数は桁違いでも、「パラメータを持つ関数を、データに合うように調整する」という骨格はまったく同じです。
深層学習の4要素
深層学習でモデルを訓練するとき、そこには必ず4つの要素がそろっています。この4点セットを覚えておくと、どんな複雑な事例に出会っても頭を整理できます。
1つ目は データ(Data) です。入力と、それに対応する正解(ラベル)の組をたくさん集めたものです。実験でいうサンプルの母集団にあたり、質と量の両方が結果を左右します。2つ目は アーキテクチャ(Architecture) 、つまり関数 の形そのものです。何層のネットワークを、どうつなぐか。機械の骨格・構造を設計するのに近い作業です。3つ目は 損失関数(Loss Function) で、モデルの予測が正解からどれだけ外れているかを1つの数値で表します。これは「調整の良し悪しを測る目盛り」であり、小さいほど良い状態です。4つ目は 最適化(Optimization) 、すなわち損失を小さくする方向へパラメータを動かす手続きです。
この4要素の関係はこう表せます。損失 はパラメータ の関数であり、
という形で、データ全体( 個)にわたる予測と正解のズレ を平均したものです。最適化とは、この をできるだけ小さくする を探す作業です。損失を「谷」、パラメータを「谷を転がるボールの位置」だとイメージすると、最適化はボールが谷底へ向かって転がり落ちる過程にあたります(詳しい仕組みはモジュール4で扱います)。ここでは、データ・アーキテクチャ・損失・最適化という4つの歯車がかみ合って初めて学習が回る、という全体像だけつかんでください。
モデル容量と過学習・未学習
ここが本モジュールの山場です。モデルの表現力の大きさを モデル容量(Model Capacity) と呼びます。直線あてはめは容量が小さく、高次の多項式や層の深いネットワークは容量が大きい、と考えてください。容量が大きいほど複雑な関係を表現できますが、大きければ良いというわけではありません。
容量が小さすぎると、データの本質的な傾向すら捉えきれません。これを 未学習(Underfitting) (あてはめ不足)と呼びます。曲がったデータに無理やり直線を引いて、どうしても合わない状態です。逆に容量が大きすぎると、今度はデータに含まれる偶然のばらつき——測定ノイズ——まで律儀に再現してしまいます。これが 過学習(Overfitting) です。訓練に使った点はぴったり通るのに、少しでも新しい入力を与えると予測が大きく暴れてしまう。実験でたまたま乗ったノイズまで曲線が拾ってしまう様子を想像すると、まさにその状態です。
私たちが本当に欲しいのは、訓練データを丸暗記する能力ではなく、未知のデータに対しても妥当な予測を返す力—— 汎化(Generalization) 性能です。訓練データでの誤差(訓練誤差)と、学習に使っていないデータでの誤差(テスト誤差)を分けて見ると、過学習が起きたときには「訓練誤差は小さいのにテスト誤差は大きい」というギャップが現れます。この乖離こそ過学習のサインです。
可視化で試そう — 多項式フィッティング実験室
言葉だけでは実感しにくいので、実際に手を動かして過学習を体感しましょう。下の実験室では、点群に多項式をあてはめ、その次数・データ点数・ノイズの大きさをスライダーで自由に変えられます。まず次数を1〜2の低い値にして、曲線がデータをうまく追えず「未学習」になる様子を見てください。次に次数を10以上まで一気に上げてみましょう。曲線がすべての点を無理に通ろうとしてぐにゃぐにゃに暴れ、点と点のあいだで大きく外れるはずです。このとき訓練誤差バーは小さいのに、テスト誤差バーが跳ね上がることに注目してください。 さらに、データ点数を減らすほど過学習が起きやすくなること、ノイズを増やすと低次でも誤差が増えることも確かめてみましょう。「ちょうど良い次数」を探る感覚がつかめれば大成功です。
多項式フィッティング実験室
この実験でつかんでほしいのは、「モデルは複雑にすればするほど良い、わけではない」という一点です。データ量とノイズに見合った容量を選ぶこと。これは深層学習でも、層を深くするかどうか・正則化をどれだけ効かせるか(モジュール5)という形で、繰り返し登場する普遍的なテーマです。
深層学習が成功した3つの理由
多層ニューラルネットワークのアイデア自体は20世紀からありました。にもかかわらず、深層学習が実用の主役に躍り出たのは2010年代です。なぜこの時期だったのか。理由は3つに整理できます。
1つ目は、大きなモデル容量を扱う技術が成熟したこと。層を深く積んでも学習が破綻しない工夫(活性化関数の改良や正則化など、モジュール3・5で扱います)が出そろいました。2つ目は ビッグデータ(Big Data) の存在です。容量の大きいモデルは大量のデータがあって初めて過学習せずに実力を発揮します。インターネットの普及で、ラベル付きの画像や文章が桁違いに手に入るようになりました。3つ目は GPU(GPU) (画像処理用の並列計算装置)による計算力の飛躍です。ニューラルネットの計算は大量の行列演算の塊であり、GPUの並列処理と相性が抜群でした。大容量モデル・大量データ・大きな計算力——この3つがそろって初めて、深層学習は花開いたのです。
コンピュータビジョンのタスクと応用
画像を扱う コンピュータビジョン(Computer Vision) の分野では、目的に応じてタスクがいくつかに分かれます。代表的な3つを押さえましょう。 画像分類(Image Classification) は「この画像は何か」を1つのラベルで答えるタスク(例: この画像は猫)。 物体検出(Object Detection) は「何が、どこにあるか」を四角い枠で示すタスク(例: ここに車、あそこに人)。 セマンティックセグメンテーション(Semantic Segmentation) は「各ピクセルが何に属するか」を塗り分けるタスクで、外観検査で欠陥領域を正確に切り出すときなどに使います。答えの粒度が「1枚に1つ→枠→ピクセル単位」と細かくなっていく、と覚えると整理しやすいです。
これらの技術は、すでに身の回りの製品に溶け込んでいます。DeepLのような高精度な機械翻訳、ChatGPTに代表される対話型AI、文章から画像を生む画像生成AIなどは、いずれも深層学習の産物です。次のコラムで、その歴史の流れをざっと押さえておきましょう。
まとめ
このモジュールでは、機械学習という分野の地図を描きました。AI⊃機械学習⊃深層学習という入れ子の関係、機械学習の核にある「モデル=パラメータを持つ関数 」という見方、そして学習を回す4つの歯車——データ・アーキテクチャ・損失・最適化。さらに、モデル容量を上げすぎると過学習を起こし、汎化性能が落ちることを多項式フィッティングで体感しました。深層学習が2010年代に花開いたのは、大容量モデル・ビッグデータ・GPUの3つがそろったからだ、という背景も押さえました。
次のモジュールでは、深層学習の最小部品である「ニューロン」に踏み込みます。たった1個の計算単位を使って、AND・ORといった論理演算を自分の手で組み立ててみましょう。まずは下のクイズで、ここまでの理解を確かめてください。
確認クイズ
AI・機械学習(Machine Learning)・深層学習(Deep Learning)の包含関係として正しいものはどれですか。
従来のプログラミングと機械学習の最も本質的な違いはどれですか。
モデル y = f(x; θ) における θ(パラメータ)の説明として正しいものはどれですか。
多項式フィッティングで次数を上げすぎたとき、典型的に起きるのはどれですか。
深層学習が2010年代に実用化した主な理由の組み合わせとして最も適切なものはどれですか。