機械学習が業務に関わってくる一般的な職種としては、下記のようなものがあります。
研究職
機械学習エンジニア
データサイエンティスト
データエンジニア
それぞれを大枠での役割を見ていきます。
(あくまで目安です)
研究職
新技術の開発・論文執筆・学会発表などを行います。
アカデミックよりのことをしたいのであれば1番近いです。
企業では、R&Dと呼ばれる部門でResearcherの立ち位置においていることが多いです。
機械学習エンジニア
ソフトウェア開発における機械学習部分を担う業務です。
最近はバックエンド部分=API作成まで実装することが求められます。
なので、pythonだとFastAPI・Flask辺りのフレームワークを触れると強みになります。
ベンチャー企業ではフロントまで担当することが多いので、Reactなどの知識は入社した後に求められることがあります。
未経験からつく職種としては1番入りやすいです。
モデル作成だけはできず、幅広く業務に携わる覚悟だけはしておいた方がいいです。
持っておいた方がいいスキル
DB
AWS、GCPなどのクラウドサービス
Git
Docker
なので、ソフトウェアエンジニアに求められるスキル+機械学習スキルが必要になってきます。
データサイエンティスト
他と比べてビジネスよりの職種です。データを元に意思決定を支援する業務です。 つまり、エンジニアリング以外の知識が広く要求されます。
エンジニアリングの知識などが求められないということではないので注意してください。
データエンジニア
データを分析したり、モデル作成するための基盤を整えるのが主な業務です。
こちらでは、機械学習スキル+インフラスキルが求められます。
いきなりこの業務につくことは少ないで気にしなくて大丈夫です。
ただ、機械学習エンジニア業務からシフトもしくは牽引することが多いです。(単純に業務量と幅が増えます)
以上を踏まえて、大手企業とベンチャー企業のどちらを選択するべきの判断基準をいくつか用意します。
大手企業
データや人材のリソースが豊富
機械学習についてビジネスモデル全体を扱うことができる
独学しやすい環境が揃ってる
開発スピード・リリースが遅い(法務チェックなどがあるため)
初期から結構な精度を求められる(品質重視)
データの取り扱いのセキュリティが厳しかったり、利用可能な形式で保存されてなかったりする
ベンチャー企業
スピード感を持ってPDCAを回すことができる
精度はそこまで求められない(使える状態であればいい)
データの取り回しが楽(クラウドに置いても大丈夫)
独自のデータを持っていない
リソースが足りなくなることがある
こう見ると大手企業のデメリット部分が目立ちますが、メリットも存在しているので一長一短
自身の進みたい方向と相談してどちらに行くか検討して見ると良いです。
大手企業に入るのは難しいと思われる方も多いと思いますが、案外難しくはありません。
GoogleやDMMにそこまで経験がない状態で入っていくのは流石に困難です。
でも狙い目はあります。母体がIT企業ではないが、DXに力を入れて推進していこうとする企業は割と入りやいです。
人事や面接官が機械学習に詳しくないので、そこまで深い質問をしてきません。
いきなり大手のIT企業は厳しいので、一つ目の会社で実績を積んでから転職するという流れが望ましいですね。
機械学習のスキルは知識・実装・数学という分類で磨いていくのが良いと思います。
知識は概要が分かり、何を参照するべきかわかる程度で大丈夫です。詳細は都度調べれば問題ありません。
具体的には下記記事を参照
書籍は下記がオススメ
ここでは機械学習に絞り紹介しました。
他にも機械学習関連の書籍は多くあるので、あくまで参考程度にしてください。
自身が続けやすい書籍が一番なので、数ページ中身を見て確認して見ることをお勧めします。
コンペディション
書籍で触るデータセット以外も触れておいた方が何かと便利です。
感覚でこのパターンだったらこの評価メトリクスが良さそうといったのがわかってきます。
写経ではなく、1からロジックを組み立てる経験を持っていると取っ掛かりを掴むのが圧倒的に早くなります。
最も有名なkaggleを始め、国内でもsignateのようなコンペディションも存在します。
中級者レベルになったならコンペに参加することをお勧めします。
kaggle
signate
nishika
probspace
atmaCup
bitgrit