3-1AIはどう動くのか
確認問題の解答と採点基準
Q1. 機械学習とディープラーニングを、「特徴」という言葉を使ってそれぞれ一文で区別せよ。
- 模範解答:機械学習(従来の方式)では人が特徴を決め、機械は特徴ごとに掛ける重みを学ぶ。ディープラーニングでは、元のデータから特徴まで機械が学ぶ。
- 採点(3点)
- 2点:「誰が特徴を決めるか」で二つの方式を区別した。
- 1点:ディープラーニングも機械学習の一分野であるという関係に触れたか、例(重み3個 対 1,741個)を挙げた。
- 減点:「ディープラーニングでは人は何もしない」と書いたら1点を引く。人はデータとモデルの構造を決める。
Q2. 特徴Aは、学習データに「照明が暗くなる」場面があるのに、なぜその場面を間違えるのか?
- 模範解答:特徴A(面積の変化、中心の移動)に変換すると、照明の場面は「面積が大きく増え、中心はそのまま」の点になる。この点は「接近」と同じ側の、さらに遠い位置に置かれる。直線1本では接近と切り分けられない。数値2個に減らした時点で区別に必要な情報が失われたため、データを増やしても直らない。
- 採点(3点)
- 1点:特徴平面で、照明の場面が接近の側に置かれる。
- 1点:直線1本(線形分類器)では切り分けられない。
- 1点:情報は特徴を作る段階ですでに失われている。データを増やすのではなく、特徴を変える必要がある。
Q3. ヒトの感覚のうち、視床を経由せずに大脳皮質へ直接向かうものは?
- 正解:嗅覚(嗅上皮 → 嗅球 → 梨状皮質)。1点。
- 補足するとよい点:梨状皮質から眼窩前頭皮質へ向かう際には、視床を経由する経路もある(Sela ほか, 2009)。
Q4. ショウジョウバエのLPLC2とセクション3の特徴Bは、どこが似ているか?
- 模範解答:どちらも「物体が四方に大きくなること」と「ただ暗くなること」を区別する。LPLC2は動きのない暗化には反応しない(Klapoetke ほか, 2017)。違うのは作られ方である。特徴Bは人が設計したもので、LPLC2は発生の過程でできた回路である。
- 採点(2点):似ている点1点、違う点1点。
Q5. 「学習データで正解率100%が出たから、現場でもうまくいくだろう」という判断の問題点は?
- 模範解答:学習データになかった状況に出会うと間違える可能性がある。セクション4の「照明変化なし」がその例である。学習損失は0.011まで下がったが、照明の場面は20個中0個しか当たらなかった。しかもそれらの場面に対しても、確率0.99で「避けよ」と確信していた。初めて見るテストデータで実力を測り、現場で起こりうる状況が学習データに含まれているかを確かめる必要がある。
- 採点(3点)
- 1点:学習時の成績と実際の性能を区別した。
- 1点:データになかった状況という原因を指摘した。
- 1点:対策を一つ以上示した(テストデータ、現場データの収集、モニタリング)。
Colab課題の解答例
基本課題:「斜めに接近」を追加
- コード1の
make_episodeに新しい種類を追加する。例:影が大きくなりながら中心が3〜5マス移動する。正解は1(避けるべき)とする。 - 予想される結果
- 特徴A:中心の移動が大きいと「通過」側に分類される。正解率が下がる可能性が高い。
- 特徴B:輪郭が長くなるので、おおむね正解する。
- ニューラルネットワーク:学習データにこの場面が含まれていれば正解し、なければ一部を間違える。
- 採点のポイント
- 結果の表がある。
- 「特徴が持つ情報」と「データが含む状況」で理由を説明した。
- 実際の数値はシードによって異なるので、数値そのものではなく解釈を見る。
チャレンジ課題:自分の業務データ
- よい答案は次を備えている。
- 特徴3個とその根拠(業務知識)がある。
- 学習例の数ごとの比較グラフがある。
- 「例が少ないときは特徴方式、十分なときはニューラルネットワーク方式」のように、データ量に応じた結論を出した。
- テストデータを最後に一度だけ使った。
- よくある間違い
- 特徴を計算するときにテストデータの情報を混ぜてしまう(データリーク)。
- 正解率だけを見て、適合率・再現率を見ない(不均衡データの場合。3-2 セクション9)。
授業中によく出る質問
- 「じゃあ、ディープラーニングは機械学習より劣っているんですか?」
- そうではない。問題とデータ量しだいである。
- 写真・音・文章のように、特徴を言葉で決めにくいデータでは、ディープラーニングのほうがはるかに強い。
- このページの場面はわざと単純に作ってあるので、よい特徴を人が簡単に思いつけた。
- 「人間の脳も誤差逆伝播法を使っているんですか?」
- 確認されていない。似たことを別の方法で実現できるという仮説が研究されている(Lillicrap ほか, 2020)。
- 「ブラウザの数値とColabの数値は、なぜ少し違うんですか?」
- 二つの環境は乱数生成器が異なるため、場面が少しずつ違う。
- 特徴Aの正解率はブラウザで86.9%(接近も1個取りこぼす)、Colabで87.5%である。
- 結論は同じである。照明の場面は、どちらの環境でもすべて間違える。
3-2ニューラルネットワークの部品
確認問題の解答と採点基準
Q1. 活性化関数のないニューラルネットワークに隠れ層を10層重ねると、どんな境界を描けるか?(2点)
- 正解:直線(高次元では平面)1本だけである。
- 採点:結論1点。線形変換を何度合成しても一つの線形変換になるという理由(W₂W₁x = Wx)1点。
Q2. シグモイドの代わりにReLUを使うと勾配消失が減るのはなぜか?(2点)
- 正解:シグモイドの勾配は最大0.25なので、層ごとに掛け合わされて急速に小さくなる。ReLUは正の区間の勾配が1なので、さかのぼっても小さくならない。
- 採点:0.25と1の比較1点、「掛け合わされて小さくなる」という説明1点。負の区間の勾配が0になること(死んだニューロン)を補足するとよい。
Q3. 正解が1、予測が0.41のとき、MSE損失と∂L/∂yは?(2点)
- 正解:L = (1 − 0.41)² = 0.3481 ≈ 0.35、∂L/∂y = −2 × (1 − 0.41) = −1.18。
- 採点:各1点。∂L/∂yは符号まで合っている必要がある。
Q4. 学習損失は下がり続け、検証損失はある時点から上がる。どんな状態で、何をすべきか?(3点)
- 正解:過学習である。
- 採点:過学習と診断したら1点、検証損失が最も低かった時点のモデルを使う早期終了(early stopping)1点、ドロップアウト・重み減衰・データ拡充のうち一つ以上1点。
Q5. 不良率10%の検査で「すべて正常」と答えるモデルの正解率と再現率は?(2点)
- 正解:正解率90%、再現率0%。
- 採点:各1点。「不均衡データでは正解率だけを見てはいけない」と補足するとよい。
Colab課題の解答例
基本課題:tanh → ReLU、隠れニューロン4・16・64
- 変更箇所は2行である。活性化関数をmax(0, z)に、その微分を「z > 0なら1、それ以外は0」に変える。
- 結果は実行して表にまとめる。ニューロンを増やすと学習時の正解率はおおむね上がるが、検証時の正解率はある時点から上がらなくなったり、下がったりすることがある。
- 採点のポイント:検証時の正解率で設定を選んだか(学習時の正解率で選んだら減点)、理由を過学習と結びつけて説明したかを見る。
チャレンジ課題:自分の業務データで6:2:2評価
- 学習データだけで学習し、検証データで設定としきい値を選び、テストデータは最後に一度だけ使う。
- しきい値0.5が妥当かどうかは、業務上のコストで判断する。たとえば不良を見逃すコストが大きければ、しきい値を下げて再現率を上げ、それに伴って増える誤警報(適合率の低下)もあわせて報告する。
- 採点のポイント:三つの指標をすべて報告したか、しきい値判断の根拠が業務状況に合っているかを見る。個人情報を含むデータは使わないか、匿名化したかを確認する。
3-3画像とCNN
確認問題の解答と採点基準
Q1. 224×224のカラー写真を隠れニューロン1,000個のMLPに入れると、第1層の重みはいくつか?(バイアスを除く)
- 正解:224 × 224 × 3 = 150,528、× 1,000 = 150,528,000個(約1億5千万個)。
- 補足するとよい点:3×3のカラーフィルター64個からなる畳み込み層は 3 × 3 × 3 × 64 = 1,728個(バイアスを含めて1,792個)である。
- 採点(2点):式1点、答え1点。チャンネル数3を抜かしたら1点を引く。
Q2. 6×6の入力に3×3フィルターをパディングなし、ストライド1で適用すると、出力サイズは?
- 正解:(6 − 3 + 1) × (6 − 3 + 1) = 4×4。1点。
Q3. セクション5の縦エッジフィルターを左上の位置に置いたとき、出力が−3になる理由を計算で示せ。
- 模範解答:重なった部分の2行目は[0, 3, 3]、フィルターの各行は[1, 0, −1]である。0×1 + 3×0 + 3×(−1) = −3となる。1行目・3行目はすべて0である。
- 採点(2点):重なった部分を正しく選べば1点、マスどうしを掛けて足す計算が合っていれば1点。
Q4. 2×2の窓[6, 3, 0, 3]の最大プーリング値と平均プーリング値は?
- 正解:最大 6、平均 (6 + 3 + 0 + 3) / 4 = 3。各1点。
Q5. ピクセルを同じ規則で並べ替えて最初から学習すると、MLPとCNNのどちらが大きく下がるか。またそれはなぜか?
- 模範解答:CNNのほうが大きく下がる。
- CNNは「近いピクセルどうしは関連がある」という仮定を構造(3×3フィルター、プーリング)に組み込んでいる。並べ替えるとこの仮定が崩れる。
- MLPはもともとピクセルの位置関係を使わないので、ほとんど変わらない。
- 実際の結果:ブラウザではMLP 92.7% → 91.3%、CNN 78.7% → 67.3%。Colabの3シード平均ではMLP 88.4% → 90.0%、CNN 80.2% → 65.8%。
- 採点(3点)
- 1点:結果(CNNのほうが大きく下がる)。
- 1点:CNNの仮定(近傍関係)を説明した。
- 1点:条件(同じ規則で並べ替えて最初から学習)を正確に述べた。「学習済みモデルに並べ替えた画像を入れる」と書いた場合、この1点は与えない。
Colab課題の解答例
基本課題:斜めフィルターの追加
- フィルターの例:
[[0,1,1],[-1,0,1],[-1,-1,0]](右上が明るく左下が暗い斜めの境界)。 -
コード1で計算した出力4×4:
3 0 0 -6 6 6 6 0 0 0 0 0 3 0 -3 0 -
最大値は6で、2行目の1・2・3マス目に現れる。斜めの画ではなく、7の上辺のすぐ下の境界である。このフィルターは「上・右が明るく、下・左が暗い」場所に反応するため、横の境界にも強く反応する。
- よい答案は、このように予想(斜めの画)と実際の結果が異なるとき、数値を根拠に理由を説明する。フィルターの名前だけで反応位置を推測すると間違うことがある、というのがこの課題の学びである。
- 採点のポイント
- フィルターの数値の配置と反応位置を結びつけて説明した。
- 数値はコードで計算した値を引用した。
チャレンジ課題:データ拡張
- 予想される傾向
- 学習画像に1〜2マスずらした画像を混ぜると、両モデルとも1〜2マスでの正解率が上がる。
- MLPも大きく上がるが、それはずらした位置をデータとして覚えるからである。
- 学習になかった3マスでは、依然としてCNNのほうが下がり方が小さい傾向が期待される。実際の数値は学生が実行した結果を基準に見る。
- よい結論の例:「構造(重み共有・プーリング)はデータがなくても小さな移動に揺らぎにくくし、拡張は見せた範囲の移動にだけ耐えられるようにする。実務では両方を併用する。」
授業中によく出る質問
- 「CNNは中央の画像ではMLPより低いですよね?」
- そのとおり。このページのように学習とテストで位置が同じで、データが少ない場合はMLPが勝つこともある。CNNはパラメーターが4.5分の1と少ない。
- CNNの長所は、少ないパラメーターと移動に対する頑健さである。実際の写真のように位置がばらばらなデータで効果が大きい。
- 「CNNは位置が変わっても同じように認識できるんじゃないんですか?」
- そうではない。2マスずらすとCNNも78.7% → 69.3%に下がる(ブラウザ基準)。
- 大きなCNNでも、数ピクセルの移動で答えが変わることがある(Azulay & Weiss, 2019)。「比較的揺らぎにくい」というのが正確である。
- 「1マスずらしたときは、なぜMLPのほうが高いんですか?」
- シード1つ・テスト150枚という小さな実験なので生じるばらつきである。
- Colabの3シード平均では、1マスでもCNN(64.2%)がMLP(54.7%)より高かった。結論は何度も繰り返した結果から出す、ということもあわせて教える。
3-4音声
確認問題
- Q1(1点):4,000 Hz。
- Q2(1点):3 Hz。
- Q3(2点):約48 dB(理論値 49.92 → 98.08 dB)。式1点、値1点。
- Q4(2点):98フレーム。(8,000 − 200) ÷ 80 = 97.5 → 切り捨てて97 + 1 = 98。「97」と答えたら1点。
- Q5(2点):1,960個、約4分の1。
課題の例
- 基本(NMEL 40、FRAME 400):行列が(フレーム数が減る)× 40に変わる。窓が長いと周波数は細かくなるが、フレーム数が減って時間変化がぼやける。
- 採点:フレーム数の変化を計算で確認したかを見る。
- チャレンジ(自分で録音):同じ音を2回録音しても相関は1にならない。距離・雑音・音量・話す速さが差を生む。
- 個人情報の同意を得たかを確認する。
3-5テキスト
確認問題
- Q1(1点):0xAC01(「각」)。
- Q2(2点):14バイト = 9 + 1 + 4。
- Q3(2点):単語の頻度を重みとして、隣り合う断片のペアの出現回数を数え、最も多いペアを結合する。
- Q4(2点):単語単位では「不明」、BPEでは["초파리", "들", "이"]。
- Q5(2点):どちらも{dog:1, bites:1, man:1}。位置情報が必要である。
課題の例
- 基本(チョウの文を追加):「나비는」(チョウは)は、同じ位置に来て同じ単語(꽃을、날개가)と一緒に現れる「꿀벌은」「초파리는」などに近づくと予想される。
- 値は実行して確認する。講師は授業の前に一度実行しておく。
- チャレンジ(結合回数):結合を増やすと語彙が大きくなり、1文あたりのトークン数が減る。
- 大きすぎるとまれなトークンが増え、学習データが不足する。
- 小さすぎると文が長くなり、計算量が増える。
- 根拠を表で示したかを見る。
3-6時系列・株価
確認問題
- Q1(1点):500ペア。
- Q2(2点):10回。最初の学習は300ペア、最後は480ペア。
- Q3(1点):約4ポイント。
- Q4(2点):選択バイアス・過学習。テスト区間は最後に一度だけ使う。
- Q5(3点):結果を数値のまま報告(1点)、データ・設定の条件を明記(1点)、一般化の限界と次の実験を提示(1点)。
課題の例
- 基本(全期間で正規化):数値が少し変わる。方向はデータによって異なる。
- 要点は、結果がよくなっても悪くなっても「未来の情報を使った評価なので信頼できない」と説明することである。
- チャレンジ(変動の大きさの予測):セクション2では、絶対値リターンの自己相関がリターンより大きかった(4/10 対 0/10)。そのため、ベースラインに対する改善の余地が相対的に大きいと予想できる。
- 実際の結果は、実行してシード3個以上で報告させる。
授業運営上の注意。 授業の始めと終わりに「教育用の例であり、投資助言ではない」とはっきり伝える。学生が特定銘柄の売買判断を尋ねたら、このページの範囲外であることを伝える。
3-7系列モデル
確認問題の解答と採点基準
Q1. 数列を平均してフィードフォワードニューラルネットワークに入れると、どんな情報が失われるか?
- 模範解答:順序が失われる。100 → 110 → 120 と 120 → 110 → 100 は、平均がどちらも110である。
- 採点(2点):「順序」と答えたら1点、例を挙げたら1点。
Q2. h_t = tanh(x_t + 0.9·h_(t−1)) に1, 0, 0を入れると、h_1、h_2は?
- 正解:h_1 = tanh(1) ≈ 0.762、h_2 = tanh(0.686) ≈ 0.595。
- 採点(2点):各1点。四捨五入による±0.002は正解とみなす。
Q3. f = σ(5) ≈ 0.9933で、入力ゲートが完全に閉じているとき、20番目のマスのセル状態は最初の値の何倍か?
- 正解:0.9933¹⁹ ≈ 0.880倍。
- 補足するとよい点:セクション5の実際の値(0.988 → 0.864、約0.875倍)が少し小さいのは、入力ゲートが0.007だけ開いていて、妨害信号(−1が10個、+1が9個)が漏れ込んだためである。
- 採点(2点):累乗の回数(19)が合っていれば1点、値が合っていれば1点。20乗(0.874)と書いた場合は1点のみ与える。
Q4. 隠れ16、入力1のとき、SimpleRNN、LSTM、GRU(教科書の式)の再帰層のパラメーター数は?
- 正解:1組 = 16 × 17 + 16 = 288個。
- SimpleRNN:288個
- LSTM:4 × 288 = 1,152個
- GRU(教科書の式):3 × 288 = 864個
- 補足するとよい点:Kerasの標準のGRUはバイアス48個が加わって912個になる。コード2の出力と一致する。
- 採点(3点):各1点。
Q5. LSTMがT = 100で失敗した。「LSTMは長い記憶ができない」と結論づけてよいか?
- 模範解答:よくない。
- セクション5のように重みを適切に決めれば、LSTMは長い記憶を保持できる。
- 失敗は、30エポックのうちに勾配降下法がその重みを見つけられなかったという意味である。
- 学習時間、学習率、データ量を変え、複数のシードで再実験してはじめて結論を出せる。
- 採点(3点)
- 1点:構造の能力と学習の結果を区別した。
- 1点:代わりの実験を提示した。
- 1点:繰り返し(シード)実験の必要性を述べた。
Colab課題の解答例
基本課題:入力ゲートを常に開く(i = σ(5))
- 予想される結果:毎マス 0.993 × g(±0.995) がセル状態に加えられる。セル状態は直近の妨害信号に合わせて大きく揺れ、最初の信号を反転しても20マス後の値はほぼ同じになる。
- 学生は必ずコードで計算した値を引用しなければならない。講師は授業の前に一度自分で実行して数値を確かめておく。
- よい結論の例:「入力ゲートは『いつ書き込むか』を決める。いつでも書き込むと、古い信号が新しい信号に上書きされる。」
チャレンジ課題:T = 100の失敗を成功に変える
- 試す価値のあること
- エポックを増やす(例:100以上)
- 学習率を変える(0.001、0.01)
- 学習データを増やす
- 短い数列から学習し、少しずつ長くする(カリキュラム学習)
- 隠れ層のサイズを変える
- 結果は実行してみないとわからない。シード3個以上で表を作り、成功・失敗がシードによって分かれるなら、それも結果として報告させる。
- 採点のポイント:変更点を一度に一つずつ比較したかを見る。都合のよい結果だけを選んで報告していないかも見る。
授業中によく出る質問
- 「教科書にはRNNは長い数列で失敗すると書いてあったのに、なぜSimpleRNNはT = 50で成功したんですか?」
- 課題が比較的単純で(最初の1マスだけを記憶)、初期化の方法によっては記憶がかなり長く保たれることもある。Kerasの再帰層は、再帰重みを直交行列で初期化するのが標準である。
- 実験結果を教科書の記述に合わせようとせず、条件を明記してそのまま報告することが大切である。
- 「GRUはT = 50でなぜ失敗したんですか?」
- この設定(30エポック、学習率0.005)では、二つのシードとも当て推量のレベルにとどまった。原因はこの実験だけでは断定できない。チャレンジ課題につなげる。
- 「忘却ゲートはLSTMに最初からあったんですか?」
- そうではない。1997年の元論文にはなく、Gersらが2000年の論文で追加した(学会発表は1999年)。
3-8アテンションとトランスフォーマー
確認問題の解答と採点基準
Q1. q = [2, 0.4]、k = [2, 0]、d_k = 2のとき、スコア q·k / √d_k は?
- 正解:q·k = 4、4 / √2 ≈ 2.828。
- 採点(2点):内積1点、割り算1点。
Q2. スコア[1.98, 1.98, 2.772]のソフトマックスと、V = [10,0], [0,10], [6,6]を混ぜた結果は?
- 正解:アテンション ≈ [0.238, 0.238, 0.525]、結果 ≈ [5.53, 5.53]。コード1の出力は[5.525, 5.525]である。
- 採点(3点):ソフトマックス1点、加重和の式1点、値1点。±0.01は正解とみなす。
Q3. 位置符号なしでセルフアテンションだけを使うと、単語の順序を並べ替えたとき各単語の出力はどうなるか?
- 模範解答:まったく同じである。各単語の出力は他のすべての単語との比較だけで決まり、比較対象の集合は順序に関係なく同じだからである。コード1では差が1e-16、つまり計算誤差のレベルだった。
- 採点(2点):結果1点、理由1点。
Q4. d = 512のマルチヘッドアテンション層のパラメーター数と、ヘッドを16個に変えたときの変化は?
- 正解:4 × 512² + 4 × 512 = 1,050,624個。ヘッド数を変えても同じである(ヘッドの幅が64 → 32になるだけ)。
- 採点(2点):値1点、「変わらない」とその理由1点。
Q5. 長さが4,096 → 8,192になると、アテンションスコアの個数は?
- 正解:4倍(16,777,216 → 67,108,864)。1点。
Colab課題の解答例
基本課題:√d_kで割らない
- 図書館の例で割らないと、スコアが√2倍になり、アテンションが一方にさらに偏る。
- ベクトルを10倍にするとスコアが100倍になり、ソフトマックスがほぼ1マスだけに1を与える。すると残りのマスの勾配が0に近づき、学習が難しくなる。
- 数値は、学生がコードで計算した値を引用させる。
チャレンジ課題:位置埋め込みを取り除く
- 予想:位置情報がないと、最初のマスが他のマスと区別できない。そのため最初のマスだけを選んで見ることができず、正解率は当て推量のレベルに近づくと予想される。「最初のマスへのアテンション」も1/T付近まで下がるだろう。
- 実際の結果は実行して確認させる。講師は授業の前に一度自分で動かしてみる。
- 採点のポイント:セクション6の「順序を並べ替えても同じ」と結びつけて説明したかを見る。
授業中によく出る質問
- 「LSTMの数値が3-7と違うのはなぜですか?」
- 3-8のコード2は、入力の長さを固定したモデルとして作り直した(3-7は長さ自由)。そのため初期の計算グラフと乱数の消費が少し異なる。
- T = 100の結果は、3-7が48.9 / 47.2%、3-8が50.6 / 57.4%である。どちらも当て推量のレベルという結論は同じである。
- 「トランスフォーマーが勝ったなら、LSTMはもう使わないんですか?」
- この課題は正解が「最初の1マス」なので、アテンションに特に有利である。
- リアルタイムで1マスずつ処理する場合や、データが少ない場合には、再帰型モデルが今も使われている(3-7 セクション9)。
- 「元論文の基本形のパラメーター数は?」
- このページでは、ブロック1つ分(3,152,384個)を式で計算して示している。