No Code, No Life

データサイエンティストを目指すしがないエンジニアのブログ

Day 52 作ることが目的にならぬよう

1. 雲判別アプリについて

  • Cloud classificationについて、KaggleのDatasetを用いて学習。
    • resnet50 fine tuning: 4 epochs validation accuracy score: 95%
    • resnet18 fine tuning: 4 epochs validation accuracy score: 90%
  • Datasetの利用規約を確認: 特に明記されておらず。
  • resnet50 fine tuning: 10epochで作成したモデルを採用。モデルとして保存。
  • 判別できる種類: 巻雲(すじ雲)、高積雲(ひつじ雲)、層積雲(うね雲)、積雲(わた雲)、積乱雲、乱層雲 (雨雲)、晴天
  • フロントエンドの実装を開始。faviconの設定~トップページのデザインと実装まで完了。
  • ただ、ここで、ふと「本当にニーズのあるアプリなのだろうか?」と我に返る。
    • ここにもある通り、ただ「作る」だけではだめなのだ。ビジネス力 (課題の発見~解決までの道筋を立て、実装まで一通り行える力)を見られているのだ。
    • これでは、ただ「作るために作った」のと何ら変わりない。手段が目的化してしまっている。
    • 一旦、この雲判別アプリについては、「練習用アプリ(Toy app)」として封印。

2. ネタ探し

  • WEBエンジニアのポートフォリオというと、色々と情報が出てくる。が、機械学習エンジニアというと、あまり情報が出てこない。
  • その中でも貴重なアドバイスが載っているのが → の記事 (https://qiita.com/masso/items/44437b48706483ce9f30)
  • この記事でも言及されている通り、テーマ選定には時間をかけたほうが良いと思う。→ まだ世の中になくて、少しの工夫で解決できそうな課題はなかろうか?
  • 2時間ほどKJ法やブレストをしていく中で、何個か良さげなアイデアが降ってきた。
    • これまでの発想法は、「習得した技術で、解決できる課題はないか?」だった。
    • これだと、「習得した技術」にだけにアイデアが凝り固まってしまうし、自分の技術力も全く向上しない。
    • そのため、「これがあったらなあ」という視点から、アイデアを出す方向へ。
    • その結果、「これ、どうやったら実装できるんだろうな」というものまで生まれているが、少し時間をかければいけそうな気もする。。。
  • うーん、あとは、もう少し基礎技術を習得して、実際に手を動かしていくしかない。。。

3. Flaskを用いたWEBアプリ作成基礎

  • DBとの連携
    • Bootstrapを用いた見た目の整理
    • Bootstrapのtableクラス、本当に便利で驚き。
  • Docker基礎
    • Docker hubへの登録と環境構築完了。loginして、ターミナルからpull, pushできるようになった。
    • YoutubeでDocker調べると、「初学者にとって必須ではない。Linux系コマンド等、もっと基礎的で大事なことを習得すべき」とのアドバイス
      • → なるほど。。。Docker composerとかのref見て「訳分かんねえな」と思っていたけど、そこに時間を費やしすぎてはいけないのか。
      • Youtube () で解説されていたこと:
        • Dockerを導入している企業は50%未満
        • 1からの環境構築は新人に任せない。
        • 大事なのは、必要なときにキャッチアップできること。
        • 短期間で転職活動完了させたいならポートフォリオに入れる必要はなし。
    • と、いうことで、興味はあるが、一旦優先順位を下げる。

4. 優良企業とは? (Youtubeチャンネルからのメモ)

  • CTO業界のランキング
  • テックブログの賑やかさ
  • テックイベントへ投資できているか?

5. 思ったこと

  • 「なんで将来役立つかも分からないのに勉強するの?」という学生さんに対する答え

    • 「将来の可能性を狭めないため」
    • 将来、何があるかわからない。いまキラキラしているように見える職種は陳腐化して、もっと高度な知識やスキルが要求される職がキラキラしだすかもしれない。
    • きっと、そのとき、「(高度な知識、スキルが必要とされる)仕事がしたい!」って思うだろう。けど、そのときに、"基礎力"がなければ、太刀打ちできないんだ。
    • 君が"やりたいこと"を実現するために、将来の選択肢を狭めないために、いろんなことを勉強しておく必要があるんだ。
  • データ系の仕事をはじめて、色々勉強して実感したのは、「英語をさらっと読める力がないと無理」「数学/統計ができないと無理」ということ。

    • それを学生時代にサボって、基礎力もないのに「できる」はずがない。本当に、学生時代に英語と数学/統計をやっておいてよかった。
    • だから、学生時代にサボりまくって、基礎力も何もない状態からこの職種を始めるのは正直非現実的。

6. 今後行う必要があること

  • DB基礎/WEBアプリとの連携
  • 画像認識/自然言語処理の応用分野
  • 新たな自主制作アプリ 構想開始