最終更新日:
【講座のご案内】機械学習に必要なエンジニア技術を学ぶ!機械学習のためのソフトウェアエンジニアリング入門講座
こんにちは。スキルアップAIの池側です。
近年、機械学習やデータ分析を行うためのライブラリや環境は充実しており、1から実装する必要なく複雑なアルゴリズムやデータの可視化などを行うことが可能です。
そのため、機械学習やデータ分析のプログラムも簡単に実装できますが、それらを使いこなすためには、基本的なITエンジニアとしての技術に関する知識が必要となります。
例えば、コンピュータの機能を支えるOS(オペレーティングシステム)や分散型のバージョン管理システム、Web、クラウドなどが挙げられます。
そこで、スキルアップAIでは、基本的なITエンジニアとしての技術を学ぶことができる講座を開講いたします。本講座では、まず上述した様々な技術に関して、Linux,WebAPI,Gitを扱い、実際に手を動かしながら学びます。そして、それらの知識を生かしながら、クラウド開発環境を構築するハンズオンにチャレンジします。
本講座を通して、機械学習やデータ分析を行うために必要なITエンジニアとしての基礎技術を広く身につけることが可能となっています。
以下に、当日ご体験いただける講座の内容をご紹介します!
1.Linuxの重要性
ハードウェアとソフトウェアを仲介する役割として、OS(オペレーティングシステム)があります。機械学習をWebサービスに組み込んだり、データ分析環境をサーバー上に構築するには、OSについての理解が必要となり、そのような環境で多く用いられるOSとしてLinuxが挙げられます。
Linuxは以下の図に示すようにシェルを通してコンピュータに命令を送ります。この命令のために様々なコマンドが用意されており、それらを扱えるようになることで、円滑なデータ分析環境の構築、機械学習システムの運用に繋がります。
また、適切な命令を送るためには、Linux内のファイル構成やユーザーシステムの知識を身につけておく必要があります。
本講座では、コンテナ型のアプリケーション実行環境であるDockerを用いてLinux環境を構築し、コマンドを1つ1つ確認しながら、Linuxのファイル構成やユーザーシステムについて学んでいきます。
それぞれのコマンドに画像付きスライドが割り振られており、つまずくことなく理解を進めることができます。
2.Web,クラウドの広がり
近年、クラウドコンピューティングの利用は大幅に増えてきています。AmazonのAWSや、GoogleのGoogle Cloudなど多くの企業がクラウドサービスを展開しています。クラウドにより、物理サーバーを配置せずとも計算資源や仮想マシンを利用することができ、スケーラブルな運用が可能となります。
多くの機械学習サービスやデータ分析基盤は、様々なクラウドサービスを活用し、Webサービスとして運用されています。そのため、クラウドを学ぶこととても重要となります。
また、それらの機能の一部をWebAPIとして提供するものも増えており、プログラムによりWebAPIを利用するスキルが必要です。ここでAPIとはApplication Programming Interfaceの略称であり、アプリケーションを外部と連携するという役割を持ちます。
WebAPIは主にREST APIとして提供され、HTTP通信により実現されます。REST APIは、RESTと呼ばれる設計原則に基づいた考え方をWebAPIに適用したもので、その設計原則からWebとの相性がとても良く、ほとんどのWebサービスに取り入れられています。
WebAPIの具体例として、Google社のGoogle APIがあり、これは、“Gmail”,“Google Calender”,“Google Map”等のWebサービスのリソースを提供します。
本講座では、サーバへデータ転送を行うコマンドであるLinuxのcurlコマンドを利用し、実際にコマンドラインからWebAPIを使用します。WebAPIから返却された値を確認することで、WebAPIに要求が送信されていることを深く理解することができます。pythonのコードからWebAPIを操作する方法も、実例付きで丁寧に紹介します。
3.ソースコードのバージョンを管理
機械学習やデータ分析をする際、基本的にpythonなどの言語を用いてプログラミングを行いますが、大規模なシステムの場合は複数人での開発が主となります。コードの差分や、誰が編集したか等の情報を管理することで、複数人での開発を円滑に進めることができます。
以上の事は、Gitと呼ばれる、ソースコードのバージョン管理ツールで行うことができます。ただしGitはローカルで動作するため、それだけではチームでの共同開発には適しません。
そこで、Githubを利用することによって、ローカル上で管理しているソースコードをリモート上でも管理し、プロジェクトを整理することができます。Gitを扱うためにはシェル上で様々なコマンドを用いる必要があり、それらの知識を身につければ、ソースコードの管理をより丁寧に行うことができます。
本講座では、gitのコマンドについて広く紹介します。ただ紹介するだけでなく、どういった順序でコマンドを入力すれば良いかも合わせて示すので、Gitを知らない方でも簡単に理解することができます。
4.基礎知識を学んだ上でクラウドの環境構築に挑戦
本講座では、以上で紹介したエンジニアとしての基礎知識を学んだ上で、AWS上にjupyter notebook環境を構築するハンズオンに挑戦していただきます。
jupyter notebookはブラウザ上で動作し、インタラクティブにプログラムを実行できるため、データ分析には欠かせないアプリケーションです。
ハンズオンではまず、AWSのEC2を用いて、サーバーを構築します。画像付きのスライドを見ながら行うため、迷わず構築の手順を確認することができます。
そして、構築したサーバー上にjupyter notebookをインストールし、サーバーにアクセスする方法から丁寧に説明しながら、機械学習、データ分析ができるようにします。また、Git、Githubも導入し、ソースコード管理の一連の流れを確認するため、これまで学んだ知識が活かされていることを実感できます。
5.おわりに
いかがだったでしょうか。盛りだくさんの内容かつ実際に手も動かすことで、ソフトウェアエンジニアの基礎知識を深く理解することのできる講義です。機械学習についての知識はあるが環境の構築に不安のある方、機械学習をシステムとして運用してみたい方など、少しでも興味のある方は是非、講座ページを覗いてみてください。
機械学習のためのソフトウェアエンジニア入門講座の詳細はこちら配信を希望される方はこちら
また、SNSでも様々なコンテンツをお届けしています。興味を持った方は是非チェックしてください♪
公開日: