MNIST Application 概要 MNIST:手書き数字の識別アプリ。 CNN で構築されたモデルにより "0" から "9" の手書き文字の推論を行う。 モデル構築には PyTorch を使用し、フロントエンドは React、バックエンドは AWS サーバレスアーキテクチャで構成。 技術スタック 分野 使用技術 フロントエンド React(Typescript), Tailwind CSS バックエンド Lambda(Python), API Gateway, ECR モデル構築 PyTorch その他 AWS SAM, Docker CNN モデル (畳み込み層 + Maxプーリング層) × 2 + 全結合層 × 3 活性化関数:最終層 Softmax 関数、それ以外 ReLU 関数。 損失関数:クロスエントロピー損失関数 最適化アルゴリズム:SGD アーキテクチャ エンドユーザー:手書き数字入力 フロントエンド:手書き数字を Base64 形式の画像データへエンコード フロントエンド:リクエストボディに Base64 形式画像データを含めバックエンドへ POST バックエンド:API Gateway でリクエストを受理し、Lambda のイベントを発火 バックエンド:Lambda で CNN モデルを用いて、画像データがどの数字であるかの確率を算出 バックエンド:各数字の確率のリストをフロントエンドへレスポンスを返す フロントエンド:確率リストから円グラフを生成し、最も確率が高いものを結果として出力