原文はこちら
データは新たな石油であり、データサイエンティストは未来の職種です。わたしたち誰もがこの職種について聞いたことがありますが、企業にとってはこの職種を雇うのはいまだ簡単ではないようです。十分な経験を持ち合わせていないわたしたちが機械学習を始めるにはどのようにしたらいいでしょうか?
機械学習におけるチャレンジ
機械学習のユースケースのうち、画像分類や価格予想、異常検知などのいくつかのものはとてもシンプルです。しかしこうしたユースケースについても、ニューロンネットワークの知識を持った専門のデータサイエンティストに、結果の改善とチューニングの手助けをしてもらう必要があります。機械学習の主なタスクとして、以下が必要となります:
- データの前処理とクリーニング
- 適切な機能の選定と構成
- 適切なモデル・ファミリーの選定
- モデルのハイパーパラメータの最適化
- 機械学習モデルの後処理
- 得られた結果の批判的分析
Depending on the business problem, it can take up to hundreds of experiments until we reach the solution. This is for experienced data scientists -- imagine for a non-expert!
ビジネス上の課題によっては、解決にたどり着くまでに何百もの実験が必要になります。ここで経験豊富なデータサイエンティストの出番というわけです。非ー専門家には難しすぎます!
AutoMLとは?
AutoMLというアイディアとは、ニューロンネットワークの改善に機械学習を使うということです。ユーザーによって指定されたタイムフレームの中で、学習とチューニングを自動的に行うのがAutoMLの役目となります。このとき複雑さはすべてシンプルなAPIやフレームワークの裏に隠蔽され、機械学習モデルをわずか数行のコードで作成できるようにしてくれるわけです。
エンタープライズ企業にとってAutoMLは以下をはじめ多くの利点をもたらします:
- 迅速なマーケット投入…あなたのデータサイエンティストはパラメータ調整やルーチン作業から解放され、課題に集中できるようになります
- 誰でも機械学習を始められる…機械学習を始めるのに専門家になる必要はありません
すごいですね!このAutoMLの選択肢としてGoogleが提供するサービスが ありますが、1時間あたり20ドル程度のコストがかかります!ならオープンソースコミュニティを検討してみませんか?
Oracle CloudでAuto-Kerasを実行する
Auto-Kerasはオープンソースのpythonのツールで、Kerasをベースにしています。Texas A&M UniversityのData Labで開発されました。Auto-Kerasはあなたのディープラーニングモデルのための正しいアーキテクチャとハイパーパラメータを自動的にサーチします。インストールも実行も簡単で、成長中のコミュニティからは多くの例が提供されています。
Auto-KerasをOracle Cloudでインストールして使ってみましょう!
どうしてOracle Cloudかって?多くの理由があります。テストや開発をしたい、あるいは商用稼働のための環境がほしい、そのどちらにもソリューションをご用意しています。またOracleは商用環境のためのGPUマシンも提供しています。
OracleはFree Tierを提供しており、Autonomous DatabaseとComputeのリソースを時間制限なしで使えます!そうです、時間制限なしにです!ここで無料アカウントをゲットして始めましょう!
ここでの例では、手書きの数字データを収めたMNISTデータベースを使います。このデータベースは各桁についてラベルも含んでいます。目標は数字の認識です。KerasとAuto-Kerasを比べてみることもできますね。Kerasでは71行のコードが必要となります(ここでチェックできます)。
ではこれをAuto-Kerasで実行してみましょう。ここではFree TierのシンプルなComputeマシンを使ってこの例を実行していきます。
Auto-Kerasはまだプレリリースバージョンであることには留意しましょうね。正式バージョンがすぐにリリースされるように願っておきましょう。
まず、前提となるpython 3.6をインストールする必要があります:
$ yum install python36
Auto-Kerasのインストールはすごく簡単で、以下を実行するだけです:
$ pip3 install autokeras
準備は万端となったので、例の実行のために以下のコードを実行しましょう:
from tensorflow.keras.datasets import mnist
from autokeras.image.image_supervised import ImageClassifier
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train = x_train.reshape(x_train.shape + (1,))
x_test = x_test.reshape(x_test.shape + (1,))
clf = ImageClassifier(verbose=True, augment=False)
clf.fit(x_train, y_train, time_limit=1 * 60 * 60)
clf.final_fit(x_train, y_train, x_test, y_test, retrain=True)
y = clf.evaluate(x_test, y_test)
print(y * 100)
モデルの比較とチューニングが行われ、過程と結果とが表示されます:
Saving model.
+--------------------------------------------------------------------------+
| Model ID | Loss | Metric Value |
+--------------------------------------------------------------------------+
| 0 | 0.14653808772563934 | 0.9875999999999999 |
+--------------------------------------------------------------------------+
+----------------------------------------------+
| Training model 1 |
+----------------------------------------------+
Epoch-1, Current Metric - 0: 13%|███▋ | 60/465 [00:55<06:12, 1.09 batch/s]
Epoch-2, Current Metric - 0.98: 75%|██████████████████▊ | 350/465 [05:49<01:57, 1.03s/ batch]
Epoch-4, Current Metric - 0.992: 52%|████████████▍ | 240/465 [04:08<03:58, 1.06s/ batch]
最終的に、98.65の精度を得ることができました。これで終わりです!
AIおよび機械学習についてもっと知りたい方は、Oracle AIのページも見てみてください。