はじめに
この記事ではMathWorks主催の機械学習・深層学習セミナーに参加した際の個人的感想と、どの様な事を学んだかについて書いていきたいと思います。
セミナーのAgenda
- MATLABとは
- MATLABを使ったデータ解析
- 役に立つリソース
- 機械学習とは
- 時系列データの機械学習・ディープラーニング
- CNNを用いた画像ディープラーニング
- ディープラーニングの各分野への応用
まずMATLABとは?
MATRABは省略された言葉で正式名称はMatrix Laboratoryだそうです。
そのMATRABがどんなものかというと、
- 対話的開発環境
- 豊富な拡張ライブラリ
- 使用目的
- 数値解析
- データ解析、可視化
- アルゴリズム開発、プログラミング
- 外部アプリケーションとの連携
résuméより引用
MATRABが使われている分野
MATLABは様々な分野に使われていています。例えば、
Software and internet、Railway Systems、Energy Production、Electronics、Biological Sciencesなどがあります。
MATRABを使用したデータ解析ワークフロー
機械学習とは?
if brightness > 0.5:
then 'Helmet'
if edge_denstiy < 4 and major_axis > 5:
then ...
旧来のアルゴリズムの良いところは、直感的な切り分けができ、計算コストが少なくてすむ
しかし条件が複雑になってくるとコーティングが複雑に...
機械学習
機械学習では、抽出した特徴で分類器を学習する。そして柔軟な切り分けに強い
教師あり学習・教師なし学習
教師あり学習は学習データに正解ラベルを付けて学習する方法で、教師なし学習は学習データにラベルを付けないで学習する方法です。教師あり学習では典型的な問題としては回帰・分類がある。簡単にいうと回帰は連続値で、分類は離散値との事です。
教師なし学習は、正常なものから異常なものを発見するときの手段として用いられます。一般的に使われるのは、教師あり学習らしいです。
学んだ事
ここからは学んだ事を、簡単に書いていきます。
他の神経細胞からの興奮状態が伝わり、電位のレベルが上昇する
電位のレベルが閾値を越えると自身が発火する
LSTM(Long Short Term Memory)について
通常のRNN(Recurrent Neural Network)に「メモリセル」を導入し、入力・忘却・出力を3つのゲートで制御する様にしたもの
畳み込みニューラルネットワーク(CNN)
畳み込み層・プーリング層・正規化層などを積み重ねて作られた多層のニューラルネットワーク
Semantic Segmentationについて
各ピクセルその意味(周辺のピクセルの情報)に基づいて、カテゴリ分類する手法
学習データの定義(SegNet)
1.ラベルのID番号とラベルのマッピング番号を決めておく
classname = ['sky' 'grass' 'building' 'sidewalk'];
pixellabelID = [1 2 3 4];
2.画像とピクセルラベルの組を定義する
imds = imageDatastore(imageDir);
pxds = pixellabelDatastore(labelDir, classname, pixellabelID);
3.画像とピクセルラベルの組から学習データを定義する
datasource = pixellabelimageSource(imds, pxds);
学習と推論(SegNet)
1.SegNetのレイヤーを定義
lgraph = segnetLayers(imageSize, numClasses, model);
2.データ源を指定して、学習を実行する
net = trainNetwork(datasource, lgraph, options);
3.学習させたネットワークでセグメンテーションを行う
C = semanticseg(I, net);
最後に
In a world with infinite data, and infinite computational computational resources, there might be little need for any other technique
résuméより引用
講義の最後に講師の方からこの様な言葉を頂きました。意味はディープラーニングは無限のデータと無限の計算リソースがある世界では、ほぼ完璧な技術だろうです。確かに今回講義を受けてみてディープラーニングには様々な可能性があり、現在でも多くの分野で活用されているという事を教わりました。しかし現実世界ではデータにも制限があり、学習するデータが曖昧なものであると正確に判定することが難しく、その曖昧な部分である欠損値を補うことが今後の発展に繋がるのではないかと思いました。
最後にここまで読んでくれてありがとうございます。急ぎで書いたので拙い部分もありますがよろしくお願いします。