タグ別アーカイブ: 深層学習

Azure Machine LearningのNet#による深層学習と限界点

DeepLearning Advent Calendarの23日目と推定されます。LSTMとかは色々と間に合わなかったので、プランBにより別テーマで過去への巡礼をしてみます。

Microsoft Azureの機械学習のPaaSであるAzure Machine LearningにはNet#というDSLがありこれを使うことで深層学習をニューラルネットワークのモデルに盛り込むことができる。実際に、Cortana Inteligence Galleryには”Neural Network: Convolution and pooling deep net“というテンプレートが存在する。中身を見てみる。

Net#を使って、深層学習の実現ができるという話は早くは国内では2015年のde:codeで語られている。確か、セッション「実践Azure Machine Learning」だったかと思う。この中で録画分に含まれているかどうかは確認していないがちらりと語られていた。メモ的な記事としては2015年に「Azureでお手軽ディープラーニング」という記事がホクソエムのdichikaさんによって書かれている。

ただ、限界点もある。今となっては古典的な隠れ層1層くらいの誤差逆伝搬法で問題となった勾配の消失問題の解決として使われているいくつかの手法があるが。

  • Pre-training
  • Autoencoder
  • Dropout
  • Randomized weight

これらはNet#で記述するための仕様を欠いているため、隠れ層を深くすると問題が起きる可能性は否定できない。基本的には私が把握している限りではNet#の仕様で深層学習の実現に有用なのは活性化関数の一部と隠れ層のカスタマイズあたりであろうかと思われる。

とはいえ、データ加工のスキームをフローで書くことができるなど有用な点は数多くあり、活用可能な問題であればAzure Machine Learningで実現するのは悪いことではない。Power BIを組み合わせて可視化するのも面白いと思う。

参考文献

  1. MLP シリーズ “深層学習” 岡谷貴之著