MATLABの講習会で学んだこと


はじめに…

先日、金沢工業大学で行われたMathWorksJapanさんのMATLABの講習会に行ってきました
この記事はその講習会で学んだことの特に基礎の基礎の部分をまとめていきます
MATLABでどんなことができるのかを中心に話していきたいと思います

目次

  1. MATLABとは
  2. MATLABでできること
  3. 機械学習とは
  4. 学習方法の種類
  5. 機械学習の現状
  6. 機械学習の問題と解決策
  7. まとめ
  8. 感想

1. MATLABとは

  • Matrix Laboratoryの略
  • 対話的開発環境(=指示を出すと答えがすぐに帰ってくるような開発環境のこと)
  • 豊富な拡張ライブラリがある
  • 使用目的
    • 数値解析
    • データ解析、可視化
    • アルゴリズム開発、プログラミング
    • 外部アプリケーションとの連携
  • MATLABを用いて作られた機械学習を取り入れているアプリケーションの例
    • 喘息症状管理アプリ (呼吸情報から喘息症状を管理)
    • 再利用可能なロケット (ソフトランディングの成功)
    • ロボット義手 (複雑なリズムを演奏可能)

2. MATLABでできること

全体の流れ : 入力 → 解析 → 出力

入力 : データへのアクセス

  • ファイル
  • ソフトウェア
  • ハードウェア
  • ウェブサービス

解析 : 処理方法、アルゴリズムの探求

  • データ解析モデリング
  • アルゴリズム解析
  • アプリケーション開発

出力 : 結果の共有、アプリ配布

  • ドキュメント生成
  • 組み込み開発
  • アプリケーション配布

3. 機械学習とは

基礎知識

  • プログラムなしにデータから機械が学習することができる能力
  • 複雑な非線形な関係性を学習する
  • データに随時適合するように更新する
  • 大規模データから効率的に学習する

機械学習の種類

  • 機械学習
    • 教師なし学習
      • クラスタリング (プロットしたデータ同士の距離からクラスに分ける)
    • 教師あり学習
      • 分類 (出力する値が離散量)
      • 回帰 (出力する値が連続量)
    • 強化学習 : はじめにはデータがなく試行の繰り返しによってデータを取り込む
      • 意思決定
      • 制御

4. 学習方法の種類

  • パーセプトロン
    • 特徴量に重みづけをする
    • ステップ関数を通して特徴を2つに分ける
    • 重みを更新しながら学習結果を正確にする
  • ニューラルネットワーク
    • データをニューロンに保存する
    • 入力層から隠れ層を経て出力層にデータを受け渡す
    • 活性化関数を用いてError関数が小さくなるように変える
  • Deepニューラルネットワーク
    • ニューラルネットワークの隠れ層を2つ以上にしたもの

6. 機械学習の問題と解決策

問題点

  • 大量のデータを扱う
  • 長い学習期間を要する

解決策

深層学習以外の手法 + 特徴抽出

  • 主成分分析(次元の削除 = 可視化と計算量削減)
  • 特徴抽出を識別する基準をデータによって変える(例:平均値、標準偏差、ピーク周波数、...etc)

転移学習(Transfer Learning)

  • 学習済みネットワーク + 独自分類器
  • 学習して得る特徴抽出を既存のネットワークから行う
  • 得たデータを分類する部分だけを独自で行う

7. まとめ

機械学習はいろんなところで利用されている
MATLABは初心者でも機械学習ができるアプリケーションがそろっている
現在、機械学習といってもやり方がたくさんある
機械学習のポイントとなるのは特徴抽出と分類

8. 感想

授業ではやらないような機械学習の今を知れたのでとても面白かった
Demoも多かったので実際にどういう風に活用すればいいのかがわかりやすかった
機械学習の細かい仕組みの内容は私が知識不足だったので少し難しく感じた
これからは機械学習を学ぶツールとしてMATLABを活用していきたい