深局孊習の6行

こんにちは、Habr ディヌプラヌニングなどの抂念は、1986幎にRina Dechterが最初に䜿甚したずきに存圚したした。 この技術は、倚局ニュヌラルネットワヌクの効果的な事前トレヌニングに関するJeffrey Hintonの出版物の出版埌、2006幎に開発されたした。 珟圚、ディヌプラヌニングは、音声認識、蚀語理解、コンピュヌタヌビゞョンず組み合わせお生掻するこずがよくありたす。 catの䞋で、SQLのディヌプラヌニングアルゎリズムの䜿甚に぀いお孊習したす。 立ち寄っお







䜕を远加したすか



ディヌプラヌニングの適甚は、新しいマントラ「すべおのアプリケヌションでの深局孊習」が次の10幎で珟実になる可胜性があるほどの割合に達したした。 立掟なDBMS SQL Serverは脇にありたせんでした。 「SQL Serverでディヌプラヌニングアルゎリズムを䜿甚できたすか」ずいう質問に察しお、自信を持っお「はい」ず回答したした。SQLServerの新しいリリヌスのパブリックプレビュヌで、SQL Server 内のRサヌビスを倧幅に改善し、開発者が䜿甚する機械孊習ツヌルの匷力なセットを远加したしたマむクロ゜フト自䜓。 このアプリケヌションを介しお、SQL Serverに基づいお構築されたDBMSは、速床、パフォヌマンス、およびスケヌラビリティを向䞊させるツヌル、および機械孊習やディヌプニュヌラルネットワヌクの他の新機胜ぞのアクセスを受け取りたす。 最近、SQL Serverが機械孊習ベヌスのモデル管理システムずしお䜿甚された堎合に1秒あたり100䞇を超えるR予枬を実行する方法を瀺し たした。GitHubWebサむトでSQL ServerのRコヌド䟋ず機械孊習パタヌンを評䟡するこずをお勧めしたす。



このブログでは、SQL Serverのディヌプラヌニングに関する「what 」、「why」 、および「how」の質問に぀いお詳しく説明したす。 これを明確にするず、SQL Serverなどの匷力なデヌタ凊理プラットフォヌムを䜿甚しお、デヌタ駆動型の人工知胜の芋通しを簡単に確認できたす。



远加する理由



今日、すべおの䌁業ずすべおのアプリケヌションがデヌタを凊理しおいたす。



デヌタストレヌゞずむンテリゞェンス人工知胜、機械孊習システム、たたはその他のむンテリゞェントシステムを組み合わせたアプリケヌションは、むンテリゞェントず呌ぶこずができたす。 SQL Serverは、わずか数行のコヌドを蚘述するこずで、開発者ずナヌザヌがアプリケヌションでディヌプラヌニングの本質を理解するのに圹立ちたす。 さらに、デヌタベヌス開発者はこれを䜿甚しお、組み蟌みの深局孊習モデルを備えたミッションクリティカルなオペレヌティングシステムを展開できたす。 この蚘事では、SQL Serverがディヌプラヌニング機胜を必芁ずする10の理由をたずめたした。



SQL Serverがディヌプラヌニング機胜を必芁ずする10の理由 。



  1. ストレヌゞシステムSQL Serverなどでマシンむンテリゞェンスを䜿甚するず、セキュリティ、コンプラむアンス、プラむバシヌ、暗号化、 マスタヌデヌタ管理サヌビス 、アクセシビリティグルヌプ、高床なビゞネスむンテリゞェンスツヌル、むンメモリデヌタ凊理テクノロゞヌ、仮想化、地理空間、䞀時的、グラフィック、その他の玠晎らしい機胜。
  2. リアルタむムトランザクション凊理OLTPおよび察話型分析凊理OLAPず同様の「リアルタむム」たたは「バッチ凊理」モヌドで䜜業できたすが、ディヌプラヌニングずマシンむンテリゞェンスに関するものです。
  3. ディヌプラヌニングを最倧限に掻甚するために、SQL Serverベヌスのアプリケヌションを倉曎する必芁はありたせん。 さらに、倚くのモバむル、IoT、およびWebアプリケヌションは、コヌドを耇補する必芁なく、同じディヌプラヌニングモデルを䜿甚できたす。
  4. 機械孊習ラむブラリMicrosoftMLなどの機胜を䜿甚しお、デヌタ凊理の専門家、開発者、DBA、およびビゞネス党䜓の効率を高めるこずができたす。 これは、同じこずを自分で行うよりもはるかに高速で効率的です。
  5. 珟圚の芁件に合わせお展開たたはスケヌリングする予枬可胜な゜リュヌションを開発できたす。 最新のSQL Server Service Packでは、これたでEnterprise Editionでしか䜿甚できなかった倚くの機胜が、Standard / Express / Web Editionなどの他のSQL Server゚ディションでサポヌトされるようになりたした。 ぀たり、SQL Serverの暙準バヌゞョンでも远加費甚なしでディヌプラヌニングを䜿甚できたす。
  6. PolyBaseを䜿甚しお倖郚デヌタの異皮゜ヌスを䜿甚しお、深いモデルから情報をトレヌニングおよび抜出できたす。
  7. さたざたな状況をシミュレヌトしお、SQL Server内でwhat-ifシナリオを䜜成し、さたざたな深局孊習モデルに䜿甚できたす。 したがっお、トレヌニングデヌタが非垞に限られおいる堎合でも、むンテリゞェントな゜リュヌションを埗るこずができたす。
  8. ストアドプロシヌゞャずトリガヌを䜿甚しお、ディヌプラヌニングモデルをすばやく簡単に展開できたす。
  9. 必芁なすべおのツヌル、監芖およびデバッグツヌル、およびマシンむンテリゞェンスに適甚可胜なSQL Server゚コシステムを入手できたす。 SQL Serverは、デヌタずずもにDNNモデルのラむフサむクル党䜓を制埡する機械孊習管理システムになりたす。
  10. トランザクションのワヌクロヌドを増やすこずなく HTAPテンプレヌトを䜿甚しお 新しいデヌタを䜜成し、保存されたデヌタの分析を取埗できたす。


実際、デヌタベヌスを管理するためだけにだれもがDBMSを賌入するこずはたずありたせん。 バむダヌは提䟛する重芁な機䌚です。 SQL Serverにディヌプラヌニング機胜を搭茉し、人工知胜ず機械孊習を埓来の意味デヌタのスケヌリング、垯域幅、埅機時間ず生産性実装の簡玠化ず孊習曲線のフラット化の䞡方でスケヌリングできたす。 これは、時間、ナヌザヌむンタラクション、生産性、コスト削枛ず利益成長、新しい機䌚、ビゞネスの芋通し、業界におけるむデオロギヌリヌダヌシップなど、さたざたな方法ですぐに貎重な結果をもたらしたす。



実際には、SQL Serverのディヌプラヌニングテクノロゞヌは、銀行、金融、医療、補造、小売、電子商取匕、モノのむンタヌネットIoTシステムで䜿甚できたす。 そしお、これらのテクノロゞヌを䜿甚しお䞍正を怜出し、病気の発生を予枬し、゚ネルギヌ消費を予枬し、個人情報を分析するこずで、既存の産業ずアプリケヌションが改善されたす。 たた、顧客関係管理CRM、゚ンタヌプラむズリ゜ヌスプランニングERP、デヌタりェアハりスDW、リアルタむムトランザクション凊理OLTPなど、SQL Serverでの負荷の開始に関係なく、ディヌプラヌニングのテクノロゞヌを簡単に䜿甚できたす。 この堎合、個別にではなく、SQL Serverが有名なすべおの皮類のデヌタおよび分析ず組み合わせお䜿甚​​するこずに぀いお話したすたずえば、構造化デヌタ、地理空間デヌタ、グラフィックデヌタ、倖郚デヌタ、䞀時デヌタ、およびJSONデヌタの凊理。 そしおここにあなたのアむデアを远加するだけです。







远加する方法は



ここでは、これらすべおを実践する方法を瀺したす。 䟋ずしお、匷力なプログラミング蚀語Microsoft Rず機械孊習甚の新しいMicrosoftMLパッケヌゞアルゎリズム開発、デヌタ凊理、分析の分野の専門家によっお䜜成されたを䜿甚しお、画像から銀河のクラスを予枬する実隓を行いたしょう。 そしお、Azure NCパブリック仮想マシンに 接続された Rサヌビスを䜿甚しお、SQL Server でそれを行いたす。 倩文孊で受け入れられおいる分類に基づいお、銀河やその他の宇宙オブゞェクトの画像を13のクラスに分配したす。これらは䞻に楕円銀河ず枊巻銀河ずその皮類です。 銀河の圢やその他の芖芚特性は、発達するに぀れお倉化したす。 銀河の圢態ずその分類を研究するこずは、科孊者が宇宙の発展の過皋をよりよく理解するのに圹立ちたす。 これらの画像を調べた埌、人が正しいクラスでそれらを配垃するこずは難しくありたせん。 しかし、2兆個の既知の銀河でこれを行うには、機械孊習ずディヌプニュヌラルネットワヌクのようなむンテリゞェントテクノロゞヌの助けなしでは実行するのが難しいので、それを䜿甚する぀もりです。 倩文デヌタの代わりに医療、金融、たたはIoTデヌタがあり、それらを䜿甚しお予枬を行う必芁があるこずは容易に想像できたす。



アプリ



フォルダヌから銀河画像をダりンロヌドし、それらを異なるクラススパむラルず楕円に配垃し、これらのクラス内のクラスに再び配垃する単玔なWebアプリケヌションを想像しおください䟋えば、通垞の枊巻銀河たたは䞭心に構造を持぀銀河ですハンドルのタむプ。







さらに、膚倧な数の画像を非垞に高速に分類できたす。 サンプル出力







最初の2列には楕円型の銀河が含たれ、残りの列にはさたざたな枊巻銀河が含たれおいたす。



では、単玔なアプリケヌションでこのような耇雑な分類を行うにはどうすればよいでしょうか



このようなアプリケヌションのコヌドは、実際にはそれほど倚くのこずを行いたせん。デヌタベヌステヌブル内のクラスによる配垃甚の新しいファむルぞのパスを芏定するだけですプログラムコヌドの残りは、結果デヌタの配垃、ペヌゞレむアりトなどで構成されたす。



SqlCommand Cmd = new SqlCommand("INSERT INTO [dbo].[GalaxiesToScore] ([path] ,[PredictedLabel]) "
      
      









デヌタベヌスで䜕が起こっおいたすか



予枬ず運甚化の郚分



アプリケヌションが画像ファむルぞのパスを曞き蟌むテヌブルを芋おください。 これには、銀河の画像ぞのパスを持぀列ず、予想される銀河のクラスを保存する列が含たれおいたす。 デヌタの新しい行がテヌブルに曞き蟌たれるずすぐに、トリガヌが起動したす。







トリガヌは、次に瀺すように、ストアドプロシヌゞャ-PredictGalaxiesNNを呌び出したすストアドプロシヌゞャに組み蟌たれたRスクリプトの䞀郚を䜿甚。







ここで、数行のRコヌドで魔法が発生したす。 このRスクリプトは、デヌタの新しい行ただ掚定倀を受け取っおいないず、varbinarymaxずしおテヌブルに栌玍されおいるモデルを受け入れたす。 少し埌で、このモデルがどのように登堎したかずいう質問に戻りたす。 スクリプト内で、モデルはデシリアラむズされ、次の行で䜿い慣れた蚈算関数rxPredictによっお䜿甚され、新しい行を評䟡しおから最終出力を曞き蟌みたす。



 scores <- rxPredict(modelObject = model_un, data = InputDataSet, extraVarsToWrite="path")
      
      





これはrxPredict関数の新しいバヌゞョンであり、MicrosoftMLパッケヌゞに含たれる機械孊習アルゎリズムを理解したす。 次の行は、新しいMicrosoftML機械孊習アルゎリズムを含むパッケヌゞをロヌドしたす。



  [ library("MicrosoftML") ]
      
      





このブログのメむントピックであるディヌプニュヌラルネットワヌクDNNに加えお、パッケヌゞには5぀のより匷力な機械孊習アルゎリズムが含たれおいたす高速線圢、高速ツリヌベヌス、高速フォレストベヌス、1クラスSVM異垞怜出方法、正芏化ロゞスティック回垰L1正則化のサポヌト付きおよびL2およびニュヌラルネットワヌク。 したがっお、6〜7行のR蚀語で、ディヌプニュヌラルネットワヌクに基づくモデルのおかげで、どのアプリケヌションもむンテリゞェントになりたす。 アプリケヌションは、SQL Serverに接続するだけで枈みたす。 ずころで、sqlrutilsパッケヌゞを䜿甚するず、Rコヌドのストアドプロシヌゞャを簡単に䜜成できるようになりたした。



モデルトレヌニングはどうですか



モデルはどこで孊習したしたか たた、圌女はSQL Serverに぀いおも孊びたした。 ただし、SQL Serverでのトレヌニングはたったく必芁ありたせんでした。ロヌカルたたはクラりド経由で動䜜するスタンドアロンのR Server゜リュヌションを備えた別のマシンで行うこずができたす。 珟圚、これらの新しい機械孊習アルゎリズムはすべおWindows甚のRサヌバヌバヌゞョンで利甚可胜であり、他のプラットフォヌムも近日䞭に利甚可胜になりたす。 SQL Serverの分野でトレヌニングを行う方が䟿利でしたが、倖郚でトレヌニングを行うこずもできたした。 トレヌニングコヌドを䜿甚したスト​​アドプロシヌゞャをご芧ください。



孊習コヌド



モデルのトレヌニングは、次のコヌド行で行われたす。







これは、MicrosoftMLディヌプニュヌラルネットワヌクトレヌニングスむヌトの新しいrxNeuralNet機胜です。 このコヌドは、Rおよびrxの他の関数に䌌おいたす-たた、匏、入力デヌタセット、およびその他のパラメヌタヌも含たれおいたす。 ここに衚瀺されるパラメヌタヌの1぀は、netDefinition = netDefinitionずいう行です。 その䞭で、ニュヌラルネットワヌクが決定されたす。



ネットワヌク定矩



ディヌプニュヌラルネットワヌクは、コヌドのこの郚分で定矩されおいたす。







ここで、ディヌプニュヌラルネットワヌクは、このために特別に䜜成されたNet仕様蚀語を䜿甚しお定矩されたす。 ニュヌラルネットワヌクには、1぀の入力、1぀の出力、8぀の隠れ局が含たれたす。 50×50ピクセルの入力レむダヌずRGB圢匏のグラフィックデヌタ3色深床で始たりたす。 最初の非衚瀺局は畳み蟌み局で、コアのサむズ画像の小さな郚分ず、コアが残りのカヌネルず䞀臎する回数折りたたみを蚭定したす。 他のタむプの畳み蟌み、および特定のニュヌラルネットワヌクの安定化に圹立぀リク゚スト数の正芏化ず調敎のためのレむダヌがありたす。 最埌に、13のクラスのいずれかず䞀臎する出力レむダヌ。 Net仕様の玄50行を䜿甚しお、耇雑なニュヌラルネットワヌクを定矩したした。 ネットマニュアルは 、MSDNセクションにありたす。



孊習デヌタサむズ/ GPU



モデルをトレヌニングするためのRコヌドは次のずおりです。







もう少し行に぀いおお話したいず思いたす-training_rows =238000。このモデルは、 Sloan Digital Sky Surveyプロゞェクトデヌタベヌスから取埗した238,000の画像でトレヌニングされたした。 次に、各むメヌゞの2぀のバヌゞョンを䜜成し、45床ず90床で展開したした。 したがっお、トレヌニング甚に合蚈玄700,000枚の画像が取埗されたした。 これはトレヌニング甚の非垞に倧量のデヌタであるため、問題が発生したす。凊理にどのくらい時間がかかりたしたか 回答6コアプロセッサず56 GBのRAMを搭茉したあたり倧きくないマシンず、匷力なNvidia Tesla K80グラフィックアクセラレヌタヌを䜿甚しお、このモデルを4時間でトレヌニングするこずができたした。 これは、Azureにサむンアップするすべおのナヌザヌが利甚できる新しいAzure NCシリヌズグラフィック仮想マシンです。 1぀の単玔なパラメヌタヌ、acceleration =“ gpu”を蚭定するこずにより、グラフィックプロセッサGPUを䜿甚しお蚈算速床を最適化するこずができたした。 GPUがなければ、孊習には玄10倍の時間がかかりたす。



芁玄する



ほんの数行のRコヌドずMicrosoftMLパッケヌゞのアルゎリズムにより、私は印象的な量のグラフィックデヌタでディヌプニュヌラルネットワヌクを蚓緎し、Rサヌビスを䜿甚しおSQLで蚓緎されたモデルを䜿甚するこずができたした。 これは、Microsoft RおよびMicrosoftMLパッケヌゞずSQL Serverの組み合わせの力です。 そしお、人工知胜ず機械孊習の力を誰もが利甚できるようにするため、他のアルゎリズムの䜜成に取り組んでいるので、これはほんの始たりに過ぎたせん。 予枬分析モデルに適した機械孊習アルゎリズムを芋぀けるには、MicrosoftMLAlgorithm Cheat Sheetをダりンロヌドできたす。










All Articles