横浜で外壁塗装屋をやっている非エンジニアです。前回([PF1.9の自動売買を統計で殺した話])の続き、成長記録 #2。
前回は「作ったものを疑って捨てた」話でした。今回は「作ったものが、想像以上にアホだった」話です。
やりたかったこと
外壁の写真を見せたら「ここは劣化グレードC」と診断してくれるAIが欲しかった。自分の仕事そのもの。手元のPC(ゲーム用GPU)のローカル vision AI に、自分で撮った外壁写真 約100枚で「この写真はこの診断」と教え込みました(fine-tune)。
学習は「成功」した。なのに——
学習中の数字(loss)はきれいに下がった。「お、賢くなってる」。
ところが、学習に使っていない新しい写真を見せたら:
- 塗りたてピカピカの壁を見て「苔・藻が繁殖(グレードC)」と診断
- 本物の塗膜の膨れは見落とす
ピカピカの壁に苔。プロとして真顔で言われたら吹き出すレベルです。
何が起きてた=過学習(overfitting)
100枚しかないと、AIは「見て判断する力」を身につけるんじゃなく、100枚を丸暗記してしまう。だから初見の写真でズレる。
"学習中の数字が良い" は「賢くなった」じゃなく「暗記が進んだ」だけ。初見の写真で試して初めて本当の実力が分かる。前回のトレードと同じ教訓——手元の数字を信じるな。
"もっと目を鍛えれば直る"と思って、悪化させた
「画像を見る部分をもっと強く学習させれば」と踏み込んだら、もっとダメになった。AIが元々持っていた"見る力"を、自分の100枚で上書きして壊してしまった(破局的忘却、というらしい)。少ないデータで目をいじると、賢くするどころか元の視力
まで失う。
結局どうしたか
fine-tune(作り込み)をやめ、**few-shot(プロンプトに見本を数枚そえて聞くだけ)**に切り替えたら、こっちの方が安定して使えた。小さいデータでは、無理に作り込むより"見本を見せて頼む"方が強いことが多い、と体で分かりました。
まだ分かってないこと
「なぜ目を鍛えたら壊れたか」の構造の話は、AIに教わりながら追ってる段階で、自分でゼロから説明はできません。この記事も専門解説ではなく、塗装屋が自分の仕事をAIに教えようとして転んだ記録として読んでください。
持ち帰り(同じ非エンジニアの人へ)
- 学習中の数字が良くても喜ばない。初見データで試すまで信じない。
- データが少ないなら、fine-tune より few-shot を先に。
- AIに"教え込む"のは、思ったより簡単に元の賢さを壊す。
ピカピカの壁に苔を見たうちのAIは、いま立派に反面教師として役立ってます。