最低でもLPIC level 1レベルのLinuxスキルを推奨します。
環境を操作するのにどのコマンドを使用すればよいかわからずに時間を無駄にする、といったことがなくなります。
既にエンジニアとして、LinuxあるいはMacOSのコマンドラインの経験がある方は必要ない場合もあります。
Pythonでのプログラミングにおけるしっかりとした基礎も必要です。
Pythonでのプログラミングの基礎がしっかりとしていれば生産性が上がりますし、プログラム内の文法エラーの修正よりも機械学習自体に集中できます。
Pythonの概要を網羅しているよい教材として、こちらPython 3 bookをお勧めしておきます。
また、よく使うPythonの基礎やモジュールを簡潔にまとめている教材としては、スタンフォード大学のPython Numpy Tutorialをお勧めします。このチュートリアルはAvintonアカデミーにて翻訳されました。
機械学習ではPythonのコードを毎日見ることになるでしょうから、Pythonを基礎からしっかりと理解しておくことは後々の効率アップに必ず役に立つはずです。
Pythonにはよく慣れ親しんでおきましょう。
Pythonでの機械学習で最もよく用いられる環境はJupyter NotebookとAnacondaです。
これらのセットアップは以下のリンクをご覧ください。
Jupyter Notebook
Anaconda
Jupyter & Anaconda setup for Machine Learning in Python (Avinton Academy)
Pythonだけでも機械学習は始めることができて、こちらPython Deep Learning bookでPythonでのプログラミングから機械学習にスムーズに移行することができます。
以下は機械学習の基礎に関する入門者向けのチュートリアルになります。
ChainerRL (Avinton Academy)
Random Forest (Avinton Academy)
Naive Bayes (Avinton Academy)
Classification vs Regression (Avinton Academy)
SVM (Avinton Academy)
アプリケーションや環境、解決したい問題によって、適する環境やライブラリ、フレームワークは異なる可能性はありますが、今日よく使われるものは以下になります。
これらにも習熟しておくとよいでしょう。
解決したい問題の種類によって、データの処理と分析が必要になる場合があります。
大きな組織では、データは巨大なリレーショナルデータベースに保存されていることが多いです。データの操作にはSQLを用います。SQLは非常に強力な言語で、複雑なデータ分析をたった数行のシンプルなコードで行うことができます。
中でもPostgreSQL databaseは最も開発が進んだオープンソースのデータベースであり、こちらを習得しておくことをお勧めします。
機械学習に向けたデータの前処理の段階で、データの加工が必要な場合が多々あります。Python Numpyはデータの加工や分析に必要な数学関数が広範に用意されており、かなり高度なものまで利用可能です。
こちらのリファレンスNUMPY API referenceでNumpyにも習熟しておくことをお勧めします。
PandasはPythonでデータ構造を扱う(データ分析を行う)際に使われるライブラリです。Numpyの機能を拡張することができます。
こちらのリファレンスPandas API Referenceでどの関数が自分のデータの加工に必要か知ることができるでしょう。
今日のビジネスにおける多くの機械学習プロジェクトでは、AIを物体検知あるいはその他の画像分析系のタスクに用いています。
それらのプロジェクトでは通常、OpenCVを画像のラベル付けやその他必要な前処理に使用します。
以下にいくつかチュートリアルをあげておきます。
Python OpenCV setup (Avinton Academy)
OpenCV simple Exercise (Avinton Academy)
OpenCV Advanced Exercise (Avinton Academy)
Stanford Machine Learning – Coursera – Andrew Ng
こちらはYouTubeでも視聴可能です。
FastAIにもフリーの良質なコースが用意されており、Computational Linear Algebra courseは特におすすめです。
Deep RL Bootcamp
Andrej Karpathy’s CNN course at Stanford (YouTube) – Stanford University (CS231n: Convolutional Neural Networks for Visual Recognition)
Sergey Levine’s Deep Reinforcement Learning Course – UC Berkeley (CS 294: Deep Reinforcement Learning)
Learning Machines 101 by Richard Golden
Practical Deep Learning For Coders, Part 1 – fast.ai
機械学習は通常、多くのコンピュータリソースを使いますので、インフラの基礎を知っておくことも重要です。使用しているサーバを最大限に活用し、モデルの学習を効率よく進めていきましょう。
Avinton Academyの研修プログラムで、このエリアの基礎を学ぶことができます。ぜひ次回のセッションに参加してみてください。
多くの場合、機械学習モデルの学習には効率を考えてGPUが用いられます。GPUがどのような仕組みで動いていて、なぜ特定のタスクではCPUより計算が速いのか知っておくとよいでしょう。
こちらはAvinton Academyのインフラワークショップ2日目で扱う内容です。
ほとんどの場合、開発環境は仮想マシン上に構築されるでしょう。ですので仮想化の概念を知っておくことも大切です。
これにはサーバ上で実際にVMWare ESXiを1からセットアップし、ハイパーバイザーのウェブGUIを用いてホスト仮想マシンを作成してみるのがよいでしょう。
こちらもAvinton Academyのインフラワークショップで扱っています。
多くのAIプロジェクトはクラウド上にデプロイされます。AWS (Amazon Web Services)は数あるクラウドサービスの中でも群を抜いており、AWS(EC2 platform)に習熟しておくことも必要となります。
こちらAWS’s official documentationがリファレンスで、Avinton Academyページにもチュートリアルhow to work with AWSがあるのでぜひ参考にしてみてください。
1つのシステムから別のシステムに環境を複製するのに、Dockerコンテナがよく用いられます。Dockerコンテナに習熟しておき、自分の環境をDockerコンテナ化することで他のチームメンバーとの環境のシェアに備えておくとよいでしょう。
社員の成長を導きながら、AIやビッグデータなどの最先端技術をプロジェクトに活用していくことが私たちのビジョンです。Avintonの充実した技術研修でスキルアップを図り、あなたのキャリア目標を一緒に達成しませんか?