この記事の目次
Pythonパッケージがサポートする深層学習の担い手AWS Jupyterノートブックを深く知ろう!
人工知能AI(Artificial Intelligence)という言葉は、頻繁にメディアで目にするようになりました。
このAIの発展系である機械学習(Machine Learning)が、人間の神経ネットワーク(Neural Network)のように絡み合って問題点を解決する手法のことを、深層学習(Deep Learning)と呼んでいます。
アマゾンの代表的なサーバーレスサービスであるAWS(Amazon Web Service)上で、この深層学習環境を提供しているのがAmazon EC2です。
AWS Jupyterノートブックは、Python環境上で、対話形式により深層学習を進めることができるソフトウェアです。
これから、深層学習がどのような形でAWS上に展開されているか、深く理解していきましょう。
AWS深層学習AMIとは?
AWS深層学習AMI(Amazon Machine Image)とは、機械学習の専門家たちが規模に関係なく深層学習を進められるような、インフラとツールが備えられている仮想環境のことです。
ここでは、AWS Jupyterノートブックから始めることができる、AWS深層学習AMIについてお話ししていきます。
機械学習と深層学習について理解しましょう!
AIの枠の中で、深層学習は機械学習に含まれているとされていますが、ここで、両者の位置づけについて確認しておきましょう。
両者の意味合いと違いを知ることは、AWS深層学習AMIを深く知ることにつながります。
機械学習とは?
機械学習とは、人間の学習機能をコンピュータなどで実現するものであり、アルゴリズムと呼ばれる一定の計算方法を元に、入力データからコンピュータが見つけた法則性を新たなデータに当てはめることによって、新たなデータを識別したり予測したりする手法です。
例えば、ある基準でリンゴとアボカドを区別するというアルゴリズムにおいて、あらかじめコンピュータに「色に着目する」という指示を与えておけば、より正確にリンゴとアボカドが識別できるようになります。
深層学習とは?
深層学習とは、機械学習の発展系であり、多数の層から成るニューラルネットワークを用いて行う機械学習のことです。
深層学習は、法則性を発見する上で着目する要素をコンピュータ自ら抽出し、あらかじめ着目するものを決めておかなくても、区別することなどができるようになったものです。
例えば、リンゴとアボカドを区別するというアルゴリズムにおいて、大量のリンゴとアボカドの写真をコンピュータに入力しておくと、コンピュータがリンゴとアボカドを区別する法則性を発見した後は、リンゴはリンゴ、アボカドはアボカドと区別できるようになります。
また、何に着目すればアルゴリズムが成功するかということ自体も学ぶこともできます。
その一方で、AIがどのような根拠で判断したかを人間があとで理解できないという例も聞かれ、今後改善の余地があるでしょう。
AWS深層学習AMIとは何か?
AWS深層学習AMIとは、機械学習の専門家たちが、規模に関係なく深層学習を進めるための仮想環境のことで、あらゆるインフラとツールが備えられています。
ここでは、AWS深層学習AMIを実行するプラットフォーム、特にAmazon EC2を例にお話ししていきます。
Amazon EC2インスタンスとは?
Amazon EC2(Amazon Elastic Computing Cloud)は、AmazonのIaaS(Infrastructure as a Service)で、データセンターのコンピュータ上に仮想的なコンピューティング環境を仮想マシンとして提供します。
ユーザーが提供される仮想マシンの単位をインスタンスと呼び、CPU環境やメモリ容量などに応じて、各ユーザーに適したものを選ぶことができます。
ユーザーは、この仮想的なコンピューティング環境にある仮想マシンに、カスタマイズしたアプリケーションを構築することができ、ネットワークを介してアクセスし、コードを実行できるようになります。
深層学習の担い手AWS Jupyterノートブックとは?
ここからは、対話形式により深層学習を進めることができるソフトウェアであるAWS Jupyterノートブックについてご紹介していきますが、AWS Jupyterノートブックが運用されるPython環境についてもお話しします。
深層学習をサポートするPythonパッケージとは?
AWS深層学習AMIをサポートしているのは、Pythonというプログラミング言語です。
Pythonの大きな特徴として、オープンソースであるということ、コーディングがプログラミングの熟練度に左右されないこと、使えるライブラリが多くあるということが挙げられます。
また、AWS SDK(Software Development Kit)for Python (Boto3) は、Python のアプリケーション、ライブラリ、スクリプトをAmazon S3、Amazon EC2などの各種サービスと連携させることができます。
連携にあたっては、クライアントとリソースという2つのレベルでAPIが用意され、属性に沿ったコードの実行が可能になっています。
2020年度から、日本の基本情報技術者試験でのプログラミング言語として追加され、汎用性の面でもC言語やJavaと肩を並べる言語となっています。
AWS Jupyterノートブックとは?
AWS Jupyterノートブックは、深層学習を用いてデータ分析ができるPython環境で公開されているオープンソースで、チーム単位でのPythonでの開発や、開発に伴うデバッグも効率よく実行することができます。
ここから、AWS Jupyterノートブックを作成するための手順と、AWS Jupyterノートブックについて具体的にお話ししていきます。
AWS Jupyterノートブックを作成するための手順は?
AWS Jupyterノートブックを作成するためには、Amazon EC2 深層学習AMIインスタンスでAWS Jupyterノートブックサーバーを設定し、Windows、MacやLinuxなどの接続可能なクライアントを設定する必要があります。
なお、AWS Jupyterノートブックを作成する前提として、Pythonの開発環境が必要ですので、あらかじめ、コマンドラインで操作するpipや、GUI画面で操作するAnacondaを使ってPythonの開発環境をインストールしておきます。
AWS Jupyterノートブック自体も、Python同様、Anacondaを使ってインストールします。
AWS Jupyterノートブックで何ができるのか?
AWS Jupyterノートブックは、AWSクラウド上で、コード、計算式、図形やドキュメントなどを作成・共有するための、オープンソースのWebアプリケーションです。
AWS Jupyterノートブックでは、機械学習はもちろん、データクリーニング、データ変換、変数を用いたシミュレーション、統計的なモデリング、データの見える化などが可能です。
また、対話形式でプログラムを実行・修正できるため、調査や研究が効率的に進めることができる環境が提供されているのです。
Pythonの開発にAWS Jupyterノートブックを活用しましょう!
人工知能AIは、コンピュータやデータサイエンスの世界だけでなく、将棋や囲碁の世界でも人間と日々戦い続けているように、ますます私たちの生活に身近なものとなっています。
AIの発展系である深層学習を応用したAWS Jupyterノートブックの登場で、ますますPythonの開発を軽快に推進できるような環境が提供されるようになりました。
汎用性が高いライブラリを多く備え、オープンソースであるというPythonの強みを活かし、今まで以上にAWSを使いこなしていきましょう!
この記事の監修者・著者

-
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞