SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Oracle Database Cloudでいってみよう! ~ 【特別編】

「機械学習」サービスの3つの提供形態と正しい選び方

Oracle Database Cloudでいってみよう! 〜 【特別編】第2回

「ライブラリ型」で提供される機械学習サービス

ライブラリ型は、プログラムに組み込める形(ライブラリ)で機械学習のアルゴリズムを提供している形態です。学習済みのモデルからスコアリングのみを提供しているものから、学習からスコアリングまでまとめた処理を提供しているものまであります。

古典的な機械学習手法による分析を専門チームが行っているところでは、より先進的な手法で新しいデータ分析にチャレンジする場合があると思います。組み込み型やプラットフォーム型で対応できないレベルで新しいことにチャレンジするには、大部分をプログラムで組み上げる必要があります。

プログラムで組み上げる際、アルゴリズムは論文などで公開されていますが、その数式は複雑で、一からプログラムで作り上げていくには時間がかかります。ただ、先進的なものの中でも人気の高いアルゴリズムの多くは、すでにライブラリとして提供されています。 アルゴリズムをゼロからプログラムとして書かないといけないとしたら、まだライブラリ化されていないアルゴリズムを動かす場合か、既存のライブラリを高速化させる場合くらいです。

ライブラリ型のメリット

ライブラリ型のメリットは、複雑な数式をプログラムに落とす手間を省ける点です。また、最近はGPUで処理できるようにパフォーマンス面も考えられていることから、大規模なデータ分析に対応できるものもあります。プログラムに加える形なので、自由度としては工数が許せばあらゆることができます。最新のディープラーニングアルゴリズムを活用して、コンテストで上位を狙う場合には、ライブラリ型の機械学習の習得が必須になります。

ライブラリ型のデメリット

デメリットとしては、組み込み型やプラットフォーム型に比べて、工数が大幅にかかることと、最新のライブラリを他の処理と組み合わせられるプログラムスキルが要求されることがあります。そのため、人材探しがたいへん難しいです。

また、自由度が高いため、ある程度の分析スキルがないと、誤った機械学習モデルを作成してしまうなどの危険性もはらんでいます。ライブラリのバグに当たった場合にも自分自身で回避する技術力が求められるため、単純なチュートリアルを回すだけならば簡単にできますが、実際に実務に応用していくとなると相当高いレベルのスキルが要求されます。

まとめ:投資として行うべし、それなりの覚悟も必要

ライブラリ型の応用範囲は、プラットフォーム型よりもずっと広いです。画像認識や音声認識で非常に高い精度を求める場合には、ライブラリ型が必要になります。ただ、プログラミングスキルが求められるため、一度もプログラムを書いたことがない人にはかなりハードルが高いでしょう。また、どのプログラミング言語にもまんべんなくライブラリが揃っているわけではなく、現時点ではRとPythonに集中しています。そのため、これらの言語の知識がないプログラマも、若干の壁を感じるかもしれません。

ライブラリ型への取り組みは研究投資に近く、工数もプラットフォーム型以上にかかるため、業務として行うにはそれなりの覚悟が必要です。ただし成功すれば、競合が簡単に追いつけない新しい施策につながる可能性があります。今すぐそのチャレンジが必要かどうか、正しく冷静に見極めましょう。とはいえ、ライブラリ自体はOSSとして公開されているものが多いので、プログラマとしての勉強の1つと思って、一度は触ってみることをお勧めします。

ここまでに説明した組み込み型、プラットフォーム型、ライブラリ型のメリットとデメリットを、表にまとめると次のようになります。

組み込み型、プラットフォーム型、ライブラリ型のメリットとデメリット
提供形態 導入効果 適用範囲 求められる
分析・ITスキル
組み込み型
  • 速い
  • 業務要件にはまればすぐに効果が出る
  • 狭い
  • アプリケーションの範囲に依存
  • 低い
  • 業務知識だけで完結するケースも多い
プラット
フォーム型
  • 普通
  • 出てきた結果を活用する仕組みが必要
  • 広い
  • 処理できるデータ形式や対応アルゴリズムの種類にのみ依存
  • 普通
  • 最低限のITリテラシーは求められる
  • 分析の用語は理解する必要がある
ライブラリ型
  • 遅い
  • 研究開発に近いレベル
  • 広い
  • 最新のアルゴリズムの適用範囲にのみ依存
  • 高い
  • プログラミングスキルが求められる
  • アルゴリズムを理解する必要がある

重要なのは、これらを踏まえて1種類の形態だけを採用するのではなく、自社の要件とリソースを照らし合わせ、複数の形態を組み合わせてビジネスに適用していくことです。例えば、組み込み型である業務ユーザーの効率を上げながら、別の業務ユーザーの効率も上げるためには、他のサービスと連携し、その連携された分析をプラットフォーム型で行うことなどが考えられます。

次のページ
オラクルが提供する機械学習サービス

この記事は参考になりましたか?

Oracle Database Cloudでいってみよう! ~ 【特別編】連載記事一覧
この記事の著者

小川 幹雄(オガワ ミキオ)

日本オラクルのクラウドアーキテクト。データサイエンスにおけるオラクルクラウドのソリューション構築を担当。機械学習、グラフ分析、ビジュアライズ分析とデータ分析をライフワークにしている。プライベートでも分析関連の論文などを読んでいることが多い。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/9549 2016/07/21 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー