忍者ブログ

プログラミングの練習

プログラミングの問題やプログラミング関連知識、ソフトウェアのテストについてのブログです

【PicoCTF】単層パーセプトロンの限界を暴け!「Perceptron Train XOR」の数理検証アプローチ

CyLab Security Academy(旧PicoCTF)の「AI」カテゴリにある問題「Perceptron Train XOR」に挑戦しました!


今回のテーマは機械学習の基礎である「単層パーセプトロンの学習限界」。非線形なXORデータに対し、重みの更新ルールがどう働き、どこで頭打ちになるのかを実際にパラメータを操作して検証したアプローチをまとめておきます。




1. 「Perceptron Train XOR」とはどんな問題?

問題文とルールを確認します。


  • ・カテゴリ: AI / Machine Learning(難易度:Easy)


    ・問題文: 「Watch a perceptron learn in real time on XOR data using the classic update rule: only misclassified points trigger updates, with no weight decay. Because XOR is not linearly separable, a single perceptron cannot hit 100% accuracy. Reach 75% accuracy to prove you understand the limitation and reveal the flag.」


    ・ヒント・制約: 誤分類された点のみが重みの更新を引き起こし、重み減衰はない。XORは線形分離不可能なため単一パーセプトロンでは100%に到達せず、目標である75%の精度に到達することがクリア条件となる。

XOR(排他的論理和)は直線を1本引くだけでは綺麗に分類できない「非線形分離不可能」なデータセットです。そのため、単層のパーセプトロンでは理論上100%正解することができず、4点中3点が正解となる75%の精度がモデルの限界点となります。




2. パラメータの確認とトレーニングの実行プロセス

ブラウザ上でインスタンスを立ち上げ、以下の手順で挙動を検証します。


  • 1. 学習率(Learning Rate)の設定

    Learning rate: 0.02 (デフォルト値)


    初期パラメータとして設定されている学習率を確認し、モデルがどのように重みを更新していくかのベースラインを置きます。

  • 2. トレーニングの実行と精度の収束確認

    Status: Target accuracy (75%) reached.


    「Run training」を実行し、誤分類されたデータポイントトリガーによる重み・バイアスのリアルタイム更新を追跡。非線形分離の構造的限界により、数ステップで精度の頭打ち(75%)に到達することを確認します。

【解法のポイント】
「アルゴリズムの数理的限界(非線形分離の不可能性)を理解しているか」がそのままクリア条件に直結している点が秀逸です。単にコードを動かすだけでなく、モデルがどこで失敗し、なぜそれ以上精度が上がらないのかという「制約のメカニズム」を把握することが本質的な攻略アプローチとなります。


3. まとめ


  • ・単層パーセプトロンにおけるXOR問題の非線形分離の限界と、誤分類ベースの重み更新ルールをハンズオン形式で検証


    ・デフォルトの学習率(0.02)を用いたトレーニングにより、理論上の限界値である75%の精度に到達することを確認


    ・機械学習モデルの構造的制約を理論と実機の両面から理解・証明するプロセスとしての重要性

インフラやWebの脆弱性だけでなく、AI・機械学習の数理モデルの制約検証まで一貫したプロセスでドキュメント化できるのは非常に価値があります。次回のチャレンジもこの検証スタイルを貫いて攻略を進めていきます!


PR