Oracle Machine Learning - 主要な属性 (2019/09/24)

Oracle Machine Learning - 主要な属性 (2019/09/24)

https://blogs.oracle.com/machinelearning/oracle-machine-learning-key-attributes

投稿者:Mark Hornick | Senior Director, Data Science and Machine Learning




Oracle Machine Learningは、Oracle Database、Oracle Autonomous Database、Oracle Big Data関連の製品・技術を用いて、データ・サイエンスや機械学習をサポートします。前回のブログ「Oracle Machine Learning family of products, OML」でご紹介したように、OMLには様々な機能がありますが、今回のブログでは、「自動化」「スケーラブル」「本番対応」の3つに焦点を当ててご紹介します。




自動化


データサイエンスでは、データの準備、テキストの処理、アンサンブル、モデルの構築と評価、アルゴリズムの選択、モデルのハイパーパラメータの調整など、様々な作業が繰り返されます。


OMLでは、データの準備として、ビン化、正規化、異常値・欠損値の処理などの自動化をサポートしています。これらは、特定のアルゴリズムの要件に基づいて自動的に適用されます。テキスト処理では、データセット内の 1 つ以上の列をテキスト列として認識することができます。これらの列は自動的に処理され、例えば、TF-IDF スコアを持つトークンが抽出されます。このようにして得られた疎なトークン化されたデータは、提供されたトレーニングデータセット内の他の構造化されたデータと自動的に統合され、アルゴリズムに提供されます。


OMLでは、アンサンブルモデルの一種であるパーティショニング・モデルをサポートしています。パーティショニング・モデルは、データを分割する列を1つ以上指定することで、分割ごとに1つのモデルを自動的に構築する機能です。これにより、複数のサブモデルからなる1つのモデルが完成します。ユーザーはトップレベルのモデルを指定してデータをスコアリングしますが、システムはスコアリングされたデータの行に応じて適切なサブモデルを選択します。これにより、手動でサブモデルを構築・管理したり、スコアリングのために個々のモデルを選択したりする必要がなくなります。


Oracle Data Minerは、データサイエンス/機械学習プロセスのいくつかの側面を自動化します。例えば、分類や回帰の場合、Oracle Data Minerは自動的にデータをトレーニングデータセットとテストデータセットに分割し、複数のモデルを構築し、モデル品質の評価を提示します。これを実現するのが、分析ワークフローを構築するためのドラッグ&ドロップ式のユーザーインターフェースです。これらのワークフローは自動的にPL/SQLスクリプトに変換され、Oracle Databaseに個別に展開することができます。


近日公開予定のOracle Machine Learning for Python(OML4Py)で導入される新機能は、AutoMLと呼ばれるもので、モデルの自動選択、特徴の選択、ハイパーパラメータのチューニングなどから構成されています。AutoMLは、メタ学習、つまり機械学習のプロセスを導くために機械学習を使用することを採用しています。Auto Model Selectionは、最も高いモデル品質を達成するアルゴリズムを特定し、網羅的な検索手法よりも早く最適なモデルを見つけることができる。Auto Feature Selectionは、指定された分類や回帰の対象に対して最も予測性の高いものを特定することで、特徴量の数を減らします。これにより、ノイズの多いデータを排除してパフォーマンスを向上させるだけでなく、精度を大幅に向上させる可能性があります。Auto Tuneは、アルゴリズムがモデルを構築する方法を制御する設定を指定する際に、手動または網羅的な検索技術を回避します。これにより、モデルの精度を大幅に向上させることができるとともに、手動での探索の手間を省くことができます。


つまり、この自動化はデータサイエンティストの生産性を向上させ、AutoMLの場合は全体のコンピュータ時間を短縮するだけでなく、機械学習のプロセスや各アルゴリズムの細かい点を知る必要がないため、専門家ではないユーザーでも機械学習を活用できるようになります。




スケーラブル 


企業のデータ量が増え続ける中、従来のデータ処理や機械学習のアルゴリズムの実装は、プロプライエタリかオープンソースかを問わず、対応に苦慮することが多くなっています。ビッグデータに対応するためには、従来のアルゴリズムを再考し、設計し直して、並列化や分散化を図ることが重要です。さらに、アルゴリズムは、モデル構築の前にすべてのデータを読み込む必要がないため、利用可能なメモリをより有効に活用する必要があります。スケーラビリティのもう一つの大きな要因は、分析エンジンにデータを移動させないことであり、これはモデル構築とデータスコアリングの両方に当てはまります。


Oracle Databaseのカーネルに組み込まれたOMLアルゴリズムは、データの移動を排除します。これらのアルゴリズムは、Oracle Databaseのセキュアレイヤー内で動作し、データベースデータへの最速のデータアクセスを実現します。さらに、データとアルゴリズムの処理を分割して並列実行することで、Oracle ExadataやOracle Autonomous Databaseなどの強力なプラットフォームを十分に活用することができます。また、OML4Sparkに含まれるOMLアルゴリズムは、Hadoopクラスタを最大限に活用できるように並列分散実装されています。


データ処理において、Oracle Databaseはパフォーマンスとスケーラビリティの点で他の追随を許しません。これにより、データを外部の分析エンジンに移すことなく、スケーラブルなデータ準備、探索、分析が可能になります。オラクルでは、これらの機能を SQL から直接公開していますが、OML4R や近日公開予定の OML4Py の透明性レイヤーも使用しています。透明性レイヤでは、Oracle Database のテーブルやビューとして利用可能なデータを参照するプロキシオブジェクトを使用しています。標準的なデータフレームの関数はオーバーロードされ、必要な機能はSQLに変換され、高性能な計算エンジンとしてOracle Databaseで実行されます。これにより、RやPythonのユーザーは標準的な構文でデータを操作することができます。また、OML4Sparkは、ビッグデータ環境におけるファイルシステム、HDFS、Hive、Impala、Spark DataFrame、JDBCデータソースのデータを参照するための透過性レイヤを提供します。


また、データサイエンティストは、RやPythonなどのオープンソースエコシステムのサードパーティ製パッケージを利用したいと考えています。これらのパッケージは通常シングルスレッドであり、すべてのデータをメモリ上に置く必要があるため、パフォーマンスとスケーラビリティの両方に影響を与えます。OML4R および OML4Py は、R や Python のユーザー定義関数を Oracle Database に格納し、それらの関数をデータ並列、タスク並列、または非並列で実行することができる embedded execution という機能を提供します。Oracle Databaseの制御下で「恥ずかしくなるほどの」並列実行を可能にすることで、例えば、オープンソースモデルを用いて大規模な大規模データを処理することができます。ただし、サードパーティ製パッケージの基本的な性能やスケーラビリティの特性は変更されず、使用方法のみが変更されるため、そのようなパッケージは慎重に使用する必要があります。




本番環境への対応


データサイエンスや機械学習のプロジェクトにおける最大の課題の一つは、ソリューションを本番環境に導入することです。データサイエンティストやアナリストがビジネス上の問題に対して明らかに価値のあるソリューションを提供したとしても、そのソリューションを既存の業務システム、アプリケーション、ダッシュボードに統合するためには、時間がかかりすぎたり、インフラやパイプラインの品質に問題があったりするなどの課題があります。このような状況では、残念ながら最良の取り組みであっても頓挫してしまいます。


Oracle Machine Learningは、ソリューションをより迅速かつ容易に展開したいというこのニーズに、いくつかの方法でアプローチしています。まず、データベース内の機械学習モデルを使用しているため、SQLユーザーはSQLクエリを通じてスコアリングのためのモデルをすぐに使用することができます。Oracle REST Data Servicesの導入により、同じモデルをREST呼び出しで使用できるようになりました。


第二に、上述したように、組み込み実行によってスケーラビリティを実現することができますが、それと同様に、あるいはそれ以上に重要なのが、RやPythonのユーザー定義関数をSQLの呼び出しによって本番環境に簡単に導入できることです。データサイエンティストが強力なビジュアライゼーションを作成したり、オープンソースパッケージで提供されているアルゴリズムを使用したりする場合、これらの結果を本番環境に導入するには、別の分析エンジンを起動したり、データの移動を管理したり、バックアップ、リカバリ、セキュリティの問題に明示的に対処したりする必要があるアドホックなソリューションが必要になることがよくあります。このような状況では、ソリューション導入の複雑さが増し、データサイエンスや機械学習プロジェクトの遅延や失敗の原因となります。OML4R や OML4Py の組み込み実行機能を使えば、ユーザーが定義した関数を即座に展開し、その結果をデータベースのテーブルとして返すことができます。構造化されたデータフレームの結果は直接テーブルとして提供され、R や Python の可視化機能から得られた画像は、PNG 画像を含む BLOB カラムを持つテーブルとして提供されます。さらに、構造化されたデータや画像データをXMLとして返し、XMLを扱うコンポーネントで利用することもできます。


自動化、拡張性、生産性という3つの要素により、ユーザーは生産性を向上させ、企業の目標をより迅速かつ容易に達成し、時間を節約することで、より多くのイノベーションを起こすことができます。


コメント

このブログの人気の投稿

Oracle RACによるメンテナンスのためのドレインとアプリケーション・コンティニュイティの仕組み (2023/11/01)

Oracle Cloud Infrastructure Secure Desktopsを発表: デスクトップ仮想化のためのOracleのクラウドネイティブ・サービス (2023/06/28)

Oracle Cloudのデータベースをオブジェクト・ストレージにバックアップする3つの方法 (2021/12/13)