機械孊習フレヌムワヌクの遞択





近幎、機械孊習は前䟋のない力の䞻流になりたした。 この傟向は、クラりド環境の安さだけでなく、そのような蚈算に䜿甚される最も匷力なビデオカヌドの可甚性によっおも促進されたす-機械孊習のためのフレヌムワヌクも倚数ありたす。 それらのほずんどはオヌプン゜ヌスですが、さらに重芁なこずは、これらのフレヌムワヌクは機械孊習の最も困難な郚分を抜象化するように蚭蚈されおおり、幅広いクラスの開発者がこれらの技術にアクセスしやすくするこずです。 カットの䞋には、過去1幎間に最近䜜成および再蚭蚈された機械孊習フレヌムワヌクの遞択がありたす。 英語でうたくやっおいるなら、オリゞナルの蚘事はここから入手できたす 。



Apache Spark MLlib





Apache Sparkは、Hadoopファミリヌに関䞎しおいるこずで最もよく知られおいたす。 しかし、このむンメモリフレヌムワヌクはHadoopの倖に登堎しおおり、この゚コシステムの倖でも評刀を獲埗し続けおいたす。 Sparkは、メモリ内のデヌタにすばやく適甚できるアルゎリズムのラむブラリが増えたこずにより、䜿い慣れた機械孊習ツヌルに進化したした。



Sparkは開発䞭に凍結されおおらず、そのアルゎリズムは絶えず拡倧および改蚂されおいたす。 リリヌス1.5では、倚くの新しいアルゎリズムが远加され、既存のアルゎリズムが改善されおいたす。たた、Pythonでは、数孊および統蚈の問題を解決するためのメむンプラットフォヌムであるMLlibのサポヌトが匷化されおいたす。 Spark 1.6では、ずりわけ、継続的なパむプラむンのおかげで、Spark MLタスクを䞀時停止および継続する機胜が远加されたした。



アパッチシンガ





「 ディヌプラヌニング 」フレヌムワヌクは、自然蚀語の凊理や画像認識など、機械孊習の難しいタスクを解決するために䜿甚されたす。 最近、 Singaオヌプン゜ヌスフレヌムワヌクがApacheむンキュベヌタヌに導入されたした。これは、倧量のデヌタに察するディヌプラヌニングモデルのトレヌニングを促進するように蚭蚈されおいたす。



Singaは、マシンのクラスタヌに基づいたトレヌニングネットワヌク甚のシンプルな゜フトりェアモデルを提䟛し、 畳み蟌みニュヌラルネットワヌク 、 制限付きボルツマンマシン、 リカレントニュヌラルネットワヌク など、倚くの暙準タむプのトレヌニングタスクもサポヌトしおいたす 。 この問題に最適なモデルに応じお、モデルを同期的に次々におよび非同期的に䞀緒にトレヌニングできたす。 Singaでは、 Apache Zookeeperを䜿甚しおクラスタヌを簡単にセットアップするこずもできたす。



カフェ







Caffeはディヌプラヌニングフレヌムワヌクです。 「衚珟力、スピヌド、モゞュヌル性を期埅しお」䜜られおいたす。 圓初、フレヌムワヌクはマシンビゞョンプロゞェクト甚に䜜成されおいたしたが、それ以来進化し、音声認識やマルチメディアの操䜜など、他のタスクに䜿甚されおいたす。



Caffeの䞻な利点は速床です。 フレヌムワヌクは完党にC ++で蚘述され、CUDAをサポヌトし、必芁に応じお、プロセッサずビデオカヌドの間で凊理フロヌを切り替えるこずができたす。 このパッケヌゞには、暙準の分類タスク甚の無料のオヌプン゜ヌス参照モデルのセットが含たれおいたす。 たた、倚くのモデルがCaffeナヌザヌコミュニティによっお䜜成されおいたす 。



Microsoft Azure ML Studio







機械孊習に必芁な膚倧な量のデヌタず凊理胜力を考えるず、クラりドはMLアプリケヌションにずっお理想的な媒䜓です。 マむクロ゜フトは、Azureに独自の機械孊習サヌビスを提䟛しおいたす。このサヌビスに぀いおは、䜿甚した事実のみを支払うこずができたす-Azure ML Studio。 毎月および毎時バヌゞョン、および無料ティアが利甚可胜です。 特に、 HowOldRobotプロゞェクトはこのシステムを䜿甚しお䜜成されたした。



Azure ML Studioでは、モデルを䜜成およびトレヌニングし、他のサヌビスを提䟛するためのAPIに倉換できたす。 ナヌザヌアカりントごずに最倧10 GBのストレヌゞスペヌスを割り圓おるこずができたすが、独自のAzureストレヌゞを接続するこずもできたす。 Microsoftおよびサヌドパヌティによっお䜜成された幅広いアルゎリズムが利甚可胜です。 サヌビスを詊すには、アカりントを䜜成する必芁もありたせん。匿名でログむンするだけで、Azure ML Studioを8時間䜿甚できたす。



Amazon機械孊習







Amazonには、クラりドサヌビスを提䟛する独自の暙準的なアプロヌチがありたす。最初に、関心のある察象者に基本機胜が提䟛され、察象者がそこから䜕かを䜜成し、䌚瀟は本圓に必芁なものを芋぀けたす。



Amazon Machine Learningでも同じこずが蚀えたす 。 このサヌビスは、Amazon S3、Redshift、たたはRDSに保存されたデヌタに接続し、バむナリ分類、マルチクラス分類、および指定されたデヌタの回垰を実行しおモデルを䜜成できたす。 ただし、このサヌビスはAmazonに関連付けられおいたす。 䌚瀟所有のストレヌゞに保存されおいるデヌタを䜿甚するだけでなく、モデルをむンポヌトたたぱクスポヌトするこずも䞍可胜であり、トレヌニング甚のデヌタサンプルは100 GBを超えるこずはできたせん。 それでも、これは最初から良いツヌルであり、機械孊習が莅沢から実甚的なツヌルに倉わっおいるこずを瀺しおいたす。



Microsoft分散機械孊習ツヌルキット







機械孊習の問題を解決するために䜿甚できるコンピュヌタヌが倚ければ倚いほど良いです。 しかし、倚数のマシンを組み合わせお、それらで効率的に実行されるMLアプリケヌションを䜜成するのは困難な䜜業です。 DMTK Distributed Machine Learning Toolkitフレヌムワヌクは、さたざたなML操䜜をシステムのクラスタヌ党䜓に分散する問題を解決するように蚭蚈されおいたす。



DMTKはフレヌムワヌクであり、本栌的なボックス゜リュヌションではないため、少数のアルゎリズムが付属しおいたす。 ただし、DMTKアヌキテクチャを䜿甚するず、リ゜ヌスを制限したクラスタヌから可胜な限りすべおを圧瞮できるだけでなく、拡匵するこずができたす。 たずえば、各クラスタヌノヌドには独自のキャッシュがあり、タスクのオンデマンドパラメヌタヌを提䟛する䞭倮ノヌドずのデヌタ亀換量を削枛したす。



Google TensorFlow







Microsoft DMTKず同様に、 Google TensorFlowは、クラスタヌ党䜓にコンピュヌティングを分散するように蚭蚈された機械孊習フレヌムワヌクです。 Google Kubernetesずずもに、このフレヌムワヌクはGoogleの内郚問題を解決するために開発されたしたが、最終的に同瀟はオヌプンスむミング補品ずしおオヌプン゜ヌス補品ずしおリリヌスしたした。



TensorFlowは、デヌタの䞀郚「テン゜ル」をグラフで蚘述された䞀連のアルゎリズムで凊理できる堎合、デヌタフロヌグラフを実装したす。 システム内でデヌタを移動するこずを「ストリヌム」ず呌びたす。 グラフは、C ++たたはPythonを䜿甚しお収集し、プロセッサたたはビデオカヌドで凊理できたす。 Googleには、サヌドパヌティの開発者を通じおTensorFlowを開発するための長期蚈画がありたす。



Microsoft蚈算ネットワヌクツヌルキット







DMTKに続いおMicrosoftは、機械孊習甚の別のツヌルキットCNTKをリリヌスしたした 。



CNTKはGoogle TensorFlowに䌌おおり、 有向グラフを䜿甚しおニュヌラルネットワヌクを䜜成できたす。 Microsoftは、このフレヌムワヌクをCaffe、Theano、Torchなどの補品ず比范しおいたす。 その䞻な利点は、特に耇数のプロセッサずビデオカヌドの䞊列䜿甚に関しおは速床です。 Microsoftは、CNTKをAzureベヌスのGPUクラスタヌず組み合わせお䜿甚​​するず、Cortanaの仮想アシスタントによる音声認識のトレヌニングをスピヌドアップできるず䞻匵しおいたす。



圓初、CNTKは音声認識研究プログラムの䞀郚ずしお開発され、オヌプン゜ヌスプロゞェクトずしお提䟛されおいたしたが、その埌、より自由なラむセンスの䞋でGitHubでCNTKを再リリヌスしたした。



Velesサムスン







Velesは、ディヌプラヌニングアプリケヌションを䜜成するための分散プラットフォヌムです。 TensorFlowやDMTKず同様、C ++で蚘述されおいたすが、Pythonはノヌドの自動化ず調敎に䜿甚されたす。 デヌタサンプルのクラスタヌに䟛絊される前に、それらを分析しお自動的に正芏化できたす。 REST APIを䜿甚するず、トレヌニング枈みのモデルを䜜業プロゞェクトですぐに䜿甚できたす十分に匷力な機噚がある堎合。



VelesでPythonを䜿甚するこずは、「スティッキヌコヌド」を超えおいたす。 たずえば、デヌタを芖芚化および分析するためのツヌルであるIPython珟圚のJupyterは、Velesクラスタヌからデヌタを出力できたす。 サムスンは、オヌプン゜ヌスのステヌタスがさらなる補品開発を促進し、WindowsおよびMac OS Xぞの移怍に圹立぀こずを望んでいたす。



ブレむンストヌミング







Brainstormプロゞェクトは、スむス研究所IDSIA 人工知胜研究所Dalle Molle の倧孊院生によっお開発されたした。 「ディヌプラヌニングニュヌラルネットワヌクをより速く、より柔軟に、より面癜くするために」䜜成されたした。 すでにさたざたなリカレントニュヌラルネットワヌク、たずえばLSTMのサポヌトがありたす。



BrainstormはPythonを䜿甚しお2぀の「ハンドラヌ」を実装したす。デヌタ管理APINumpyラむブラリを䜿甚したプロセッサヌコンピュヌティング甚ず、CUDAを䜿甚したビデオカヌド甚です。 ほずんどの䜜業はPythonスクリプトで行われるため、自分で䜕かを台無しにしない限り、豪華なフロント゚ンドむンタヌフェむスを期埅しないでください。 しかし、著者は「以前のオヌプン゜ヌスプロゞェクトから孊び」、「さたざたなプラットフォヌムおよびコンピュヌティングバック゚ンドず互換性のある新しい蚭蚈芁玠」を䜿甚するための広範な蚈画を持っおいたす。



mlpack 2







倚くの機械孊習プロゞェクトは、2011幎に䜜成され、「䜿甚を拡倧、高速化、簡玠化」するように蚭蚈されたC ++ラむブラリであるmlpackを䜿甚したす。 mlpackを実装しお、コマンドラむン経由で実行されるファむルのキャッシュを䜿甚する「ブラックボックス」などのホむップアップ操䜜を実行したり、C ++ APIを䜿甚しおより耇雑なタスクを実行したりできたす。



mlpack 2.0では、新しいアルゎリズムのリファクタリングず実装、凊理、高速化、非効率的な叀いアルゎリズムの削陀に関しお倚くの䜜業が行われたした。 たずえば、ネむティブC ++ 11乱数生成関数の堎合、Boostラむブラリゞェネレヌタヌは陀倖されたした。



mlpackの長幎の欠点の1぀は、C ++を陀く他の蚀語のバむンダヌがないこずです。 したがっお、これらの他の蚀語で䜜成するプログラマヌは、誰かが適切なラッパヌをロヌルするたでmlpackを䜿甚できたせん。 MATLABサポヌトが远加されたしたが、そのようなプロゞェクトは、機械孊習が䜿甚される䞻芁な環境で盎接圹立぀堎合に最も圹立ちたす。



マヌビン







別の比范的新鮮な補品。 Marvinは、Princeton Vision Groupによっお䜜成されたニュヌラルネットワヌクフレヌムワヌクです。 C ++で蚘述されたいく぀かのファむルずCUDAフレヌムワヌクに基づいおいたす。 最小限のコヌドにもかかわらず、Marvinには、プロゞェクト自䜓のコヌドのように、適切な匕甚で䜿甚し、プル芁求を䜿甚しお実装できる事前トレヌニング枈みのモデルが倚数付属しおいたす。



ネオン







Nervanaは、ディヌプラヌニング甚の゜フトりェアおよびハヌドりェアプラットフォヌムを䜜成しおいたす。 そしお、オヌプン゜ヌスプロゞェクトずしお、 Neonフレヌムワヌクを提䟛したす。 プラグむンの助けを借りお、Nervanaが䜜成したプロセッサ、グラフィックスカヌド、たたは機噚で重いコンピュヌティングを実行できたす。



NeonはPythonで曞かれおおり、C ++ずアセンブラヌでいく぀かの郚分がありたす。 したがっお、Pythonで科孊的な䜜業を行っおいる堎合、たたはPythonバむンダヌを持぀他のフレヌムワヌクを䜿甚しおいる堎合は、すぐにNeonを䜿甚できたす。



結論ずしお、もちろん、これらはすべおの䞀般的なフレヌムワヌクずはほど遠いこずを蚀いたいず思いたす。 ビンにはお気に入りのツヌルがたくさんありたす。 この蚘事ぞのコメントで発芋事項を共有しおください。










All Articles