最初の質問は2か空欄で答えてください。 枠内に0~9の整数を一つ描き、枠外をタップ・クリックすることで判定します。 実用にはまだまだ程遠いですが、そこそこの精度を達成したので一旦共有とします。 https://scratch.mit.edu/projects/734795801/ を直接応用した数字認識です。本来は画像認識のような二次元のタスクは畳み込み層を用いて実行するのですが、元のプロジェクトが全結合層のみであり、畳み込み層はまだ実装できていないため全結合層のみで実行してみました。そのため精度はそれなりです。 学習はTurbowarpで30分ほどかけて行いました。 最初の質問で1と答えれば学習できます。 ニューロン数 (入力)400→200→100→50→25→12→10(出力) 活性化関数は最終層のみ恒等関数、それ以外はReLU 学習率=0.01→漸減, バッチサイズ=4, 最大10000回 誤差関数の局所最小脱出のため、学習率をリセットして4回学習全体を繰り返すようにしています。(ゴリ押し) 学習に使ったデータは10種類×250枚の手書き文字を20×20のバイナリデータにしたあと並行移動で13倍に傘増ししたもので、学習データとテストデータを分けていません。そのため表示されている精度はあまり信用できませんが、学習データに対する精度は91.8%を達成しました。 Scratch上の文字認識系のプロジェクトで、重み学習のプログラムを実装しているのは稀だと思います。 (他の言語で学習させた重みを持ってきたものはときどき見かけることがあります)
↓学習する場合、推奨 https://turbowarp.org/619727301 展望:畳み込み層の導入、Adamの実装、バッチ正規化の導入、MNISTの利用、アルファベット拡張など