機械学習(ニューラルネットワーク) を最初からプログラムして、数字判定システムを作ってみる

機械学習(ニューラルネットワーク) を最初からプログラムして、数字判定システムを作ってみる

by rubiccube

👁 535 ❤️ 24 ⭐ 22 🔄 0
Created: Nov 26, 2020 Last modified: Feb 7, 2023 Shared: Nov 26, 2020

Description

scratchの標準機能だけで作成しています。 「ゼロから作るDeep Learning: Pythonで学ぶディープラーニングの理論と実装」という本を参考にして、機械学習のプログラミングから作成しています。(誤差逆伝播法で学習され、活性化関数にはReLU関数、重みの初期値はHeの初期値が使われています。)()の部分は今は対応していません。今後実装する予定です。 大変だったことは、scratchは多次元配列に対応していないため、自分で多次元配列の仕組みの部分からつくらなければならなく難航したことと、「ゼロから作るDeep Learning: Pythonで学ぶディープラーニングの理論と実装」ではnumpyというライブラリを使うため、numpyの機能であるブロートキャストが使えないためscratchではnumpyでは1行で実装ができる所を、30ブロックぐらいで実装しなければならなかったことです。

Instructions

下のサイトで判定した方がとても速いです。 https://turbowarp.org/455169946 mnistというデータセットを使っています。 学習部分はできなかったため学習済みの重みを使用して学習しています。 今度はscrath拡張機能自作して高速化します。

Project Details

Visibility
Visible
Comments
Enabled