深属学習

2019年のデータサイエンスのトレンド

2019年はデータサイエンス関連のブームの余波は続きます。機械学習、深層学習、AIなどの言葉は流行語になって、企業規模の大小を問わず、自社の生産性向上やサービス向上にAIを生かす試みを進めており、競争力を保つにはもはやAIの導入が不可欠になります。今回の記事は2019年のデータサイエンスで流行りやそうな話をまとめています。 IoTとAIを活かす製品・サービスが広がる IoTが広がることによって、あらゆるモノがインターネットにつながり、モノと情報をやり取りすることができるようになります。IoTからデータを集め、蓄積して、AI(人工知能:Artificial Intelligence)が活躍します。AIが分析することで、企業は新しい価値を創出し、より良いサービスや商品を提供できるようになるのです。新しいサービスを創り出すこともできるかもしれません。また、既存の商品をIoT化する道もあるでしょう。商品から収集されたデータを、AIが分析することで、商品に付加価値が生まれる可能性もあります。   AIのブラックボックスの解明 ディープラーニングは画像解析などの用途に用いられているが、ブラックボックスが多少あっても実用化に差し支えはないだろう。実はディープラーニングに否定的な人は少なくないんです。理由はブラックボックスの問題があるから。そんななか、ディープランニングの新しい可能性を拓く「説明可能な人工知能XAI(Explainable Artificial Intelligence)」を開発しています。Maximum activation analysis / Lime / Shapなどはブラックボックスの解明する技術の例です。 「説明可能な人工知能」は、どのような特徴を持って猫と判断したのか、その理由まで説明することができる次世代AIを指します。説明可能な人工知能の必要性はより広範でしょう。 自動機械学習 自動深層学習 AIプロジェクトを推進してくには、データ、データサイエンティスト、機械学習エンジニア、業務プロセスに精通する人材と、必要な要素はいくらでもでてきて、さらにコストと時間という問題も重なってきます。機械学習と深層学習は大量のハイパーパラメータ設定と計算資源を要します。計算時間も馬鹿にならなく、どのハイパーパラメータが良いのかを、学習を幾度と無く繰り返して決める必要があります。 機械学習の専門家でなくても高品質な画像分類モデルを生成できるというものですが、その背景にある理論がNeural Architecture Searchです。Neural Architecture Search(略称:NAS)が従来のニューラルネットワーク設計と違うのは、NASはニューラルネットワークのアーキテクチャ自体を最適化するということです。ネットワークの重みを最適化しますが、NASではニューラルネットワークの構造自体やパラメータを最適化したうえで、重みを最適化します。   AIを民主化する データとAI(人工知能)を使いこなす企業が競争上の優位を獲得します。データ量が膨大になると、データの背後にある構造やパターンなどのインサイトを人間が理解できない。そこで、よりデータを理解できるように機械学習や深層学習のようなアルゴリズムが進化しました。   Google、Microsoft、IBMなどのIT大企業のみならず、ベンチャー企業とスタートアップは新たなクラウドでのデータサイエンス支援サービスを提供しています。計算能力(コンピュート)の民主化、(2)アルゴリズムの民主化、(3)データの民主化、(4)才能(タレント)の民主化という四つの民主化を進めていきます。そのためにはAIの民主化、AIを誰でも使えるようになります。   https://hackernoon.com/great-power-great-responsibility-the-2018-big-data-ai-landscape-6a35bcf34f7f https://www.kdnuggets.com/2018/12/predictions-data-science-analytics-2019.html

Kerasでアクティベーションのパラメータチューニング

以前は「Mnistで深層学習入門」を説明しました。今回は、活性化関数(Activation Function)のパラメーター調整を説明します。活性化関数は、入力信号の総和がどのように活性化するかを決定する役割を持ちます。これは、次の層に渡す値を整えるような役割をします。 実験では活性化関数での計算時間及び精度を比較します。   Linear Linear activation(Identityとも呼ばれる)、最も単純な活性化機能の1つです。 これは、入力を出力に線形変換します。 ほとんど使われていませんが、その範囲とドメインは[-Inf; + Inf]になります。   Sigmoid Sigmoid は、[-Inf; + Inf]を(0; 1)の範囲に設定し、S字曲線のように見えます。 また、勾配消失問題が起こる可能性があります。勾配消失(Vanishing gradients)とは。層を増やすにつれて、バックプロパゲーションでは徐々に最初の層に近づくにつれて情報を伝達出来なくなり、学習速度が遅くなっていきます。   Hard Sigmoid 範囲[-Inf; -2.5]で0に等しくなります。 [-2.5,2.5]の範囲で0直線的に増加し、範囲(+2.5; + Inf)で1となる関数です。Hard Sigmoidの計算は、指数関数ではないため、Sigmoidの計算より高速であると考えられ、分類タスクについて合理的な結果が得られます。 しかし、正確には近似値なので、通常のシグモイドよりも誤差がはるかに大きいため、回帰タスクに使用するべきではありません。また勾配消失もおこりやすいとされます。   Hyperbolic Tangent (TanH) TanHはシグモイドのS字曲線によく似ていますが、その範囲は(-1; +1)です。 近年のRelu(ランプ)関数のようなアクティベーション関数が登場する以前にはかなり人気がありました。 Sigmoidの代わりにTanHを使用する利点 より強いグラジエント:データが0の周りに集中している場合、その微分はより高くなります。 範囲(-1; 0)を含むため、勾配の偏りを避ける。 しかし、Sigmoidと同様、TanHは勾配消失問題は起こりうります。   Softsign それは符号関数の連続近似であり、そのグラフはTanHと非常によく似ています。 しかし、TanHは指数関数的(exponential)ですが、Softsignは多項式(polynomial)です。   Rectified Linear Unit (ReLU) 非常に簡単で強力なアクティベーションです。 入力が正の場合は入力を出力し、そうでない場合は0を出力します。現在、SigmoidおよびTanHよりも優れた結果をもたらす事が多いです。勾配消失問題以外では、dying ReLU という問題が発生する可能性があります。 活性化関数ReLUは負の領域では値が0=勾配がないとう関数です。そのため学習時に大きく負側に重みが更新された場合、ReLU関数で活性化する事がなくなる可能性がある。 …

Kerasでアクティベーションのパラメータチューニング Read More »

Mnistで深層学習入門 活性化関数 時間/精度比較

最近、ニュースや記事でよく目にする、耳にする“ ディープラーニング(Deep Learning) ” 。ディープラーニングに興味ある方が多方面に増えてきている一方で、Deep Learningについて知りたいけれども、実際よくわからないと感じている方も多く見受けられます。この記事はディープラーニングについて説明します。過去に紹介してきたクラスタリングや回帰分析とは異なります。 ディープラーニングとは ディープラーニング(deep learning)または深層学習とは、人間の脳神経回路を模したニューラルネットワークを多層的にすることで、コンピューター自らがデータに含まれる潜在的な特徴をとらえ、より正確で効率的な判断を実現させる技術や手法です。 具体的な例は、世界囲碁トップレベルに勝利した人工知能の囲碁プログラム「AlphaGo」のアルゴリズムはディープラーニングです。 「機械学習」と「ディープラーニング」の違いとは? ディープラーニングは機械学習をさらに発展させたものだ。従来の機械学習との大きな違いは、情報やデータを分析する際に使う枠組みが異なっていること。構成、データ量、コンピューティングソースなどの異は下記の表にまとめました。 実験 ディープラーニングを実験すると思っていたところ、kerasでmnistのデータを画像分類します。 Kerasは,Pythonで書かれた,TensorFlowまたはCNTK,Theano上で実行可能な高水準のニューラルネットワークライブラリです. Kerasは,コードが書きやすく、迅速な実験を可能にすることに重点を置いて開発されました. アイデアから結果を得るまでの時間を早くする事で試行錯誤をしやすいというメリットがあります。 mnistのデータ 28×28ピクセル、白黒画像の 手書き数字 のデータセットになります。各ピクセルは0(白)~255(黒)の値をとる。6万枚の学習用画像と1万枚のテスト画像が入っています。今回は活性化関数を変えながら精度と時間比較をしてみます。 https://keras.io/ja/datasets/#mnist 実行環境 Python3.6 Anaconda 5.2.0 Jupyter Notebook5.6.0 Python ライブラリー Tensoflow 1.10.0 Keras 2.2.2 Sklearn 0.19.1 mnist_kerasのPython import numpy as np import tensorflow as tf from keras.models import Sequential from keras.layers.core import Dense, Activation from keras.optimizers import …

Mnistで深層学習入門 活性化関数 時間/精度比較 Read More »