タイトル通りですが、プログラミング初心者がAIアプリ開発コースを3ヶ月間受講したので、振り返りとしてまとめます。
目次
1.受講のきっかけ
2.Aidemyの学習
3.作成物
4.今後の目標
1. 受講のきっかけ
文系の大卒、プログラミング未経験、苦手なものは数学。
現職は営業で、転職を考えるキッカケに、何か勉強してみようと思い、Aidemy Premium Planの一番短い3ヶ月コースを選びました。
2. Aidemyの学習
事前カウンセリングで、「数学(なんなら算数)が苦手です」と伝えたところ、一番数学の要素が少ないAIアプリ開発コースを勧めてもらいました。
コースの内容は、Aidemyのサイトに詳細があります。
Pythonの基礎、機械学習の概論、ディープラーニングの概論と学んでいき、
「男女認識」「手書きの数字認識」といった具体的な例を学び、最後に自身のポートフォリオとなりえるようなWebアプリ制作、までが課題です。
①Slackでいつでも質問ができ、毎日17〜22時の間に回答をしてもらえること
②事前に予約して30分〜1時間のカウンセリング(技術的な質問)ができること
というサポート体制があるのですが、
①だいたい終業時間が20時頃なので、残業後「さあ勉強するぞ」と気合を入れるのが難しかった
②Slackのやり取りで解決することが多かったので、カウンセリングをほとんど受けなかった
という結果でした。
結局3ヶ月ギリギリになって最終課題をなんとか提出することができたものの、カウンセリングをもう少し活用できたらよかったと思います。
3. 作成物
最終課題を作成する前に、MNISTを用いた手書き数字を分類するWebアプリを作成するステップがあり、そのコードをかなり参考にしながら、最終課題を作成しました。
Webアプリ制作については、コースの受講案内にも「Web アプリ公開に最低限必要な知識の習得」が到達目標となっているので、作りはかなりシンプルなものになります。
Kaggleにデータセットが公開されていたので、学生時代に学んだアラビア語文字を認識するアプリを作成しました。
データセットを使用したのは、講座の修了期間がギリギリになってしまったので、自前で画像を集めて、前処理をするのはかなりハードルが高かった為です。
モデル部分のコードを下記に記載します。
model = Sequential()
model.add(Conv2D(filters=16, kernel_size=(3,3), padding='same', activation='relu',
input_shape=(32,32,1)))
model.add(MaxPooling2D(pool_size=2))
model.add(Conv2D(filters=32, kernel_size=(3,3), padding='same', activation='relu'))
model.add(MaxPooling2D(pool_size=2))
model.add(Conv2D(filters=64, kernel_size=(3,3), padding='same', activation='relu'))
model.add(MaxPooling2D(pool_size=2))
model.add(Dropout(0.3))
model.add(Flatten())
model.add(Dense(500, activation='relu'))
model.add(Dropout(0.4))
model.add(Dense(28, activation='softmax'))
model.summary()
上記のモデルで、正解率を95%前後まであげることができました。
4. 今後の目標
3ヶ月の勉強を経て、基礎の基礎を知ることができたと感じており、
なかなかこの最初のハードルを独学で超えることは、私にとっては相当難しかったと思うので、受講してよかったと思っています。
今後の目標は、広くいうとプログラミングだけでなく勉強を続けること、
狭いところでは、とりあえずディープラーニング協会主催のG検定合格を目指します。
唐突ですが以上。おしまい。