| ようこそ、Day 1へ。トークナイザー、トランスフォーマー、学習ループを紹介する前に、まずはほとんどの現代的な機械学習が最初に始める場所から始めます。それはニューラルネットワークです。最初の1日を、今後29日間で使い回すための土台を築く日だと思ってください。 もしニューラルネットワークがブラックボックスのように聞こえると思ったことがあるなら、この投稿はあなたのためです。簡単な絵を使います。これは犬か猫か? そして、モデルの中で実際に何が起きているのかを、平易な言葉で追っていきます。 ニューラルネットワークとは?ニューラルネットワークは層でできています。各層には多数の小さなユニットがあります。データは一方向に流れます。つまり各ユニットは、前の層から数値を受け取り、それを更新して、次へ新しい数値を送ります。 学習中、ネットワークは自分自身を調整し、出力が例題データ上の正しい答えにより近づくようにします。1つずつルールとしてプログラムされるわけではありません。例から学びます。 入力層、隠れ層、出力層下の図は、通常の3種類の層を示しています:
「単純なパターンを先に、小さなパターンを後に」といったこの形は、内部が違って見えても、言語モデルの中で再び現れます。 重み、バイアス、活性化、損失この4つの要素は、ほぼすべてのネットワークに登場します。
そして次に決めます:
この判断ルールは活性化関数(Activation Function)と呼ばれます。意思決定のスイッチのようなものだと思ってください。
学習プロセスはシンプルです。モデルは予測を行い、損失を計算し、その後エラーを減らすために重みとバイアスを調整します。このプロセスを何度も繰り返し、モデルが予測を上手くできるようになります。 要するに、重みが重要度を決め、バイアスが出力を調整し、活性化関数が判断を行い、損失がモデルに「どれだけ間違っているか」を知らせて改善できるようにします。 ニューラルネットワークが誤差を減らす方法(逆伝播)損失が分かったところで、次の疑問はこれです: モデルは実際にどうやって、この誤差を減らすのでしょうか? ここで逆伝播(Backpropagation)が登場します。
たとえばこう考えてください。モデルが犬だと予測したのに、正解は猫だったとします。するとモデルは「どの特徴が一番私を誤らせたんだ?」と問いかけます。たとえば、大きさに重要度を与えすぎて、音を無視してしまったかもしれません。そこで大きさの重みを少し下げて、音の重みを少し上げます。 この調整はランダムに行うのではありません。勾配(gradients) と呼ばれるものによって導かれます。勾配は、「重みやバイアスをほんの少し変えたときに、損失がどれくらい変わるか」を教えてくれます。簡単に言えば、誤差を減らすためにどちらへ動くべきか、その方向性を示します。 方向が分かったら、重みとバイアスを小さな一歩で更新します。このステップ幅は、学習率(learning rate) というパラメータで制御されます。学習率が高すぎると、モデルが正しい解を飛び越してしまうかもしれません。逆に小さすぎると、学習が非常に遅くなります。 この一連のプロセスは、出力から始めて入力へ向かって逆向きに、層ごとに行われます。だから逆伝播と呼ばれます。 つまり、学習の全サイクルは次のようになります:
この処理は、損失が小さくなり、モデルがより良くなるまで、何度も繰り返されます。 要するに、逆伝播はニューラルネットワークが誤差を減らすために、重みとバイアスを正しい方向へ調整しながら学ぶことを助ける方法です。 言語モデルとのつながり大規模言語モデルもやはりニューラルネットワークです。層、パラメータ、非線形性、損失、そして勾配による更新があります。タスクは画像のラベルの代わりに「次のトークン予測」になります。そして損失は、多くの場合クロスエントロピーです。順伝播、損失計算、逆伝播、そして更新のリズムは同じです。 この記事では直感を掴むために分類を使いました。今後の投稿では設定をテキストとトークンに切り替えますが、ここであなたが読んだ学習の物語は今もなお当てはまります。 Day 2は概念からコードへ移ります。PyTorchを見ていきます。テンソル、ネットワークがコード内でどのように表現されるか、そして学習ループが実際にはどのように組み合わさるのかを取り上げます。 [リンク] [コメント] |
小さな言語モデルを作る30日間 — Day 1:ニューラルネットワーク
Reddit r/LocalLLaMA / 2026/4/4
💬 オピニオンIdeas & Deep AnalysisModels & Research
要点
- 記事は「小さな言語モデルを作る30日間」のDay 1として、トークナイザや学習ループに入る前にニューラルネットワークの基礎を平易に説明している。
- ニューラルネットワークは入力・隠れ層・出力層の「層」で構成され、データは前の層から次の層へ一方向に流れていき、各ユニットが値を更新していく。
- 学習では、出力が正解に近づくようにネットワークが自ら調整され、ルールを逐一プログラムするのではなく例から学ぶと述べている。
- 重み(weights)、バイアス(bias)、活性化(activation)、損失(loss)の4要素が多くのニューラルネットで共通して登場し、それぞれの役割の直感的な理解を提示している。



