機械学習 ハンズオン-チュートリアル

Similar documents
目次 1. はじめに 本書対象者 PALRO のアプリケーションについて Ubuntu 8.04LTS の入手について Linux 上での開発環境の構築 事前準備 Ubuntu のインストール..

Slide 1

WiFiの現状

Anaconda (2019/7/3)

WiFiの現状

再起動した状態になり パスワードを入力すると 図 2 のように DEXCS2011 のアイコ ンがデスクトップ上に表示される 2 端末を準備する メニューバーにある端末の形を左クリック 図 2 デスクトップ メニューバーに端末の形がない場合 図 3 メニューバー アプリケーション アクセサリー 端末

Anaconda x86_64 版バージョン の インストールとパッケージの追加 最終更新 : 2018 年 2 月 10 日 URL: Anaconda は,Py

2. Docker の基本的な操作 1 docker hub の参照 2 DockerHub の Explorer リンクからアプリケーションを参照 3 アプリケーション検索 4 tag について 3. docker 基本コマンド 1 docker の

Slide 1

ご利用のコンピュータを設定する方法 このラボの作業を行うには 事前設定された dcloud ラボを使用するか 自身のコンピュータをセットアップします 詳細については イベントの事前準備 [ 英語 ] とラボの設定 [ 英語 ] の両方のモジュールを参照してください Python を使用した Spar

Raspberry Pi で WEB カメラを使用 会津大学 RT ミドルウェア講習会 2017 The University of Aizu

swak4Foamを使って見ました.odp

bash on Ubuntu on Windows bash on Ubuntu on Windows bash on Ubuntu on Windows bash on Ubuntu on Windows bash on Ubuntu on Windows ˆ Windows10 64bit Wi

第5回 マインクラフト・プログラミング入門

実験 5 CGI プログラミング 1 目的 動的にWebページを作成する手法の一つであるCGIについてプログラミングを通じて基本的な仕組みを学ぶ 2 実験 実験 1 Webサーバの設定確認と起動 (1)/etc/httpd/conf にある httpd.conf ファイルの cgi-bin に関する

Helix Swarm2018.1インストール手順

0_テキストマイニング環境構築_mac

Waylandを試してみた 横浜PF部 第31回勉強会

Microsoft Word - XOOPS インストールマニュアルv12.doc

Installation Guide for Linux

Raspbian と ソフトウエアで広がる 情報工学の世界 金子邦彦 1 前準備 ① Raspbian のインストール Raspbian のインストールは 次のページで説明している ② Raspb

PowerPoint プレゼンテーション

Helix Swarm2018.1アップグレード手順

Taro-ラズパイのインストールと設定

Linux 用 Windows サブシステムのセットアップ まず Windows Subsystem for Linux をインストールする必要があります ここに良い説明があります :

WebARENA SuiteX V2 EC-CUBE 2.13 インストールマニュアル ( 標準 MySQL+ 非 SSL ) 作成 :2014 年 2 月 Ver.1.1

Alibaba Cloud [ ナレッジドキュメント ] AWS EC2 から Alibaba Cloud ECS へのマイグレーション手順 (Linux 版 ) AWS EC2 から Alibaba Cloud ECS への マイグレーション手順 (Linux 版 ) Ver

PowerPoint プレゼンテーション

Android用 印刷プラグイン Canon Print Service マニュアル

Microsoft Word - VPN...[.U.K.C.hLinux doc

Microsoft Word - CygwinでPython.docx

1. ネットワーク経由でダウンロードする場合の注意事項 ダウンロード作業における確認事項 PC 上にファイアウォールの設定がされている場合は 必ずファイアウォールを無効にしてください また ウイルス検知ソフトウェアが起動している場合は 一旦その機能を無効にしてください プリンターは必ず停止状態 (

Raspberry Pi 3(Raspbian) での Actian Zen Edge 使用 株式会社エージーテック 2018 年 7 月 5 日

Java Bridgeを利用した他言語によるデータロード&プロットデモ

OpenAM 9.5 インストールガイド オープンソース ソリューション テクノロジ ( 株 ) 更新日 : 2013 年 7 月 19 日 リビジョン : 1.8

IT概覧 ~IoTまでの流れ~

Nagios XI - SNMPでのLinux監視

2015 年度 卒業論文 表情認識システム 指導教員白井英俊教授 中京大学情報理工学部機械情報工学科 学籍番号 氏名 H 中川将成 (2016 年 1 月 )

目次 1. 動作環境チェック 動作必要環境 Java のインストール Java のインストール Firebird のインストール Firebird のインストール Adobe Reader のインストール

プログラミング実習I

モジュール1のまとめ

PowerPoint プレゼンテーション

Code_Aster / Salome-Meca 中級者への道 2015年5月31日

目次 1. 改版履歴 概要 WEB 版薬剤在庫管理システムのインストール 事前準備 インストール アプリケーションのセットアップ WEB 版薬剤在庫管理システムの初期設定

FUJITSU Cloud Service K5 認証サービス サービス仕様書

2)PostgresSQL を他のパソコンからもアクセス出来るように設定する PostgreSQL をインストールしたパソコンの C:\Program Files\PostgreSQL\9.3\data\pg_hba.conf の下部で host all all /32 md5 と

目次 第 1 章はじめに 本ソフトの概要... 2 第 2 章インストール編 ソフトの動作環境を確認しましょう ソフトをコンピュータにセットアップしましょう 動作を確認しましょう コンピュータからアンインストー

[PPD ファイルの生成 ] ダイアログボックスが表示されます 保存先を指定します ( 図では PPD フォルダをHD 直下に事前に作成し指定 ) [PPD の種類 :] の設定は Mac に設定します [OK] ボタンをクリックすると PPD ファイルが 生成されます 指定した保存先に PMP65

4 (TA:, ) 2018 (Ver2.2) Python Python anaconda hello world

Troubleshooting SSH connections with Reflection X

Jupyter Notebook を活用したプログラムライブラリ構築の検討 吹谷芳博 1, 藤澤正樹 1 ( 1 あすか製薬株式会社 ) Examination of the program library construction using Jupyter Notebook ASKA Pharm

CONTEC DIOプロバイダ ユーザーズガイド

IBM SPSS Statistics - Essentials for Python: のインストール手順 Mac OS

Microsoft Word - ssVPN MacOS クライアントマニュアル_120版.doc

ArcGIS Runtime SDK for WPF インストールガイド (v10.2.5)

zabbix エージェント インストールマニュアル [Windows Server] 第 1.2 版 2018 年 05 月 18 日 青い森クラウドベース株式会社

IronPython による柔軟なゲーム開発 筑波大学 AmusementCreators

Alibaba Cloud [ ナレッジドキュメント ] オンプレから Alibaba Cloud ECS へのマイグレーション手順 (Linux 版 ) オンプレから Alibaba Cloud ECS への マイグレーション手順 (Linux 版 ) Ver SB Clou

ディープラーニングとは AGENDA Qwiklabs/DIGITS の使い方 DIGITS による物体検出入門ハンズオン

改版履歴 本書の改版履歴は以下のとおりです 日付 改版理由 変更箇所 版数 2014/09/04 初版発行 版 2015/03/30 第 1.1 版に改訂 対象 OS 追加 1.1 版 2015/07/10 第 1.2 版に改訂 対象 OS 追加 1.2 版 2015/09/04 第 1

FUJITSU Cloud Service for OSS 認証サービス サービス仕様書

Transcription:

機械学習 ハンズオン - チュートリアル 初めてのペアモニター研究

はじめに このチュートリアルは機械学習の環境を構築し ニューラルネットワークが実行できるようになるところまで行います チュートリアルの流れ 1. 環境構築 2. 機械学習用プログラム実装 & 実行 3. プログラムの改良 ( 精度向上のため ) 4. 機械学習についてより深く理解するために 2

y[mm] y[mm] 機械学習 ヒット分布 認識 手書き文字 認識 5 σ x = 1.0σ x TDR x[mm] 0 σ x = 1.5σ x TDR x[mm] ビームサイズ再構成は文字認識問題と同様に扱える 近年大量の画像を入力として利用し文字認識や物体検知などを機械学習によって行う手法が発展している 3

ニューラルネットワーク 入力画像 x 1 x 2 w 1 w 2 w 3 w 4 x n w n 入力層隠れ層 w n : 重み w 5 w 6 y1 w n 1 y 2 出力層 チュートリアルはこの部分 フォークである確率 y 1 スプーンである確率 y 2 神経細胞を模したパーセプトロンを層状に並べた構造を持つ 隠れ層が複数ある場合 ディープニューラルネットワークと定義 4

環境構築 5

使用するマシンについて 今回は実験 III で使用しているマシンに ssh で接続して作業を行います User IPアドレス cs002 172.18.33.228 cs003 172.18.33.214 cs006 172.18.33.95 cs009 172.18.33.221 Password : Jikken3 6

ssh 接続 実験 III マシンに ssh 接続を行います $ ssh XY cs00*@172.18.33.*** 接続後 $ ls を打ち込み machine_learning ディレクトリがあるか確認してください Machine_learning train_data_sigmay_y0238 test_data_sigmay_y0238 train_data_sigmay_y0238.tar.gz test_data_sigmay_y0238.tar.gz cpf.sh 使用しません 7

仮想環境構築 Python 実行用の仮想環境を作成します これにより Python 本体と異なる機械学習用の環境を構築できます メリット ソフトウェアアップデートをしたら Python のバージョンが上がりライブラリが動かなくなるなどのトラブルを防ぐ 共有サーバーで権限がないため ライブラリをインストールできない場合でも仮想環境ならインストール可能になる 構築方法 Python の venv モジュールを使用します 8

構築方法 Homeディレクトリで $ python3 m venv [ 仮想環境名 ] を実行します -m: モジュールを使うためのオプション venv: モジュール名 [ 仮想環境名 ]: 短い方がおすすめ ここでは tf 仮想環境名のディレクトリが作成されたら成功 9

仮想環境有効化 終了方法 有効化 $ source./tf/bin/activate 端末の表示が cs00*@cs00* ~:$ から (tf) cs00*@cs00* ~:$ に変わります 終了 $ deactivate 有効後と終了後に $ python V と入力して両者を比べるとバージョンが変わっていることが確認できます 10

機械学習用ライブラリ 機械学習を行うためのライブラリとして TensorFlow,Keras を使用します TensorFlow Google が開発した機械学習のためのオープンソースライブラリ Keras Python で書かれた,TensorFlow または CNTK,Theano 上で実行可能な高水準のニューラルネットワークライブラリです.( 公式より ) ざっくり言うと TensorFlow スペシャリストでなくても TensorFlow を動かすことが可能になるラッパーです 11

ライブラリインストール 仮想環境を有効化し $ pip install tensorflow keras を実行します 他の必要なライブラリもインストールしてください $ pip install matplotlib opencv-python pillow tqdm $ pip install pydot graphviz グラフ描画, 画像処理, など $ sudo apt-get install python3-tk graphviz ニューラルネットモデル可視化 12

ソースコードダウンロード ソースコードをgithubからダウンロードします Homeディレクトリで $ git clone https://github.com/ykoba84/pair_monitor_study.git Home pair_monitor_study machine_learning ディレクトリ構成 13

pair_monitor_study 中身 pair_monitor_study VGGnet.py (CNNプログラム σ_y 用 ) VGGnet_2para.py (CNNプログラム σ_x,σ_y 用 ) count.py ( ヒット分布が何枚あるかカウント ) dataset.py ( データセット読み込み時に使用 ) graph_plot.py ( グラフプロット ) nn.py ( ニューラルネットワークプログラム 動作確認用 ) outputs.py ( 学習結果の出力に使用 ) utilities/ ( ビームサイズ再構成の計算に使用 ) 14

プログラム実装 & 実行 15

プログラム実行 pair_monitor_study ディレクトリ内の nn.py を実行します その前に nn.py を書き換えます nn.py の 31~34 行目 # make train_data x_train, y_train = ds.read_data_sigmay("../ml_hans-on_tutorial/train_data_sigmay_y0238 ") # make test_data x_test, y_test = ds.read_data_sigmay("../ml_hans-on_tutorial/test_data_sigmay_y0238") # make train_data x_train, y_train = ds.read_data_sigmay(../machine_learning/train_data_sigmay_y0238") # make test_data x_test, y_test = ds.read_data_sigmay(../ machine_learning/test_data_sigmay_y0238 ") $ python nn.py と入力し実行 16

loss とは 17

学習できていれば loss と val_loss, acc と val_acc の値はほぼ一致するかつ acc の値が大きい 今回は一致せず 改善の余地あり 18

生成されたファイルの確認 pair_monitor_study/result/nn/190202_151902 score.txt ( 損失関数値と正解率の最終結果 ) model.png ( ニューラルネットの構造 ) total_time.txt ( 計算時間 ) prediction.csv ( ビームサイズの確率分布 ) hyperparameter.txt ( 抜粋したハイパーパラメータの値 ) image.png ( トレーニング中の損失関数と正解率の推移 ) image.png 19

精度向上のための手法 20

お疲れ様でした ここまで出来れば機械学習の導入は終了です ここからはプログラムを改良して精度が高いニューラルネットの構築を目指します 21

画像を増やす 実は画像はトレーニングとテストデータでそれぞれ 100 枚しか読み込んでいません トレーニングデータの枚数は多くあった方が精度向上しやすいです nfile=nfile+1 if nfile>100: break dataset.py 88~90 行目 nfile=nfile+1 if nfile>100: break コメントアウト ( クォーテーションを 3 回 ) 22

ユニットを増やす 隠れ層のユニットの数を増やすとパラメータが増え特徴を捕らえやすくなります ただし増やしすぎると過学習しやすくなる危険性もあります 入力層 出力層のユニット数は固定 w 1 x 1 w 2 w w 4 3 x 2 w 5 w 6 w n 1 h1 = Dense(100)(inputs) nn.py 51 行目 x n 入力層 隠れ層 w n 出力層 h1 = Dense(1000)(inputs) 23

層を増やす 隠れ層の数を増やします ただ個人的に 4,5 層増やしても精度は向上しませんでした 増やすとしても 1,2 層が限度 nn.py 55~67 行目 """ # Hiddin2 layer as follows: h2 = Dense(500)(h1) #h2 = BatchNormalization()(h2) h2 = Activation('relu')(h2) #h2 = Dropout(0.5)(h2) コメントアウトを外す # Hiddin3 layer as follows: h3 = Dense(500)(h2) #h3 = BatchNormalization()(h3) h3 = Activation('relu')(h3) #h3 = Dropout(0.5)(h3) """ 24

その他の改良 Dropout 設定した割合に基づいてユニットを無効化させ過学習を抑制する BatchNormalization 値を平均 0 分散 1 に正規化する 収束を早める 畳み込みニューラルネットワーク 25

より勉強するために 参考になった図書 岡谷貴之, 機械学習プロフェッショナルシリーズ深層学習, 講談社 ニューラルネットワーク 畳み込みニューラルネットワークの理論について説明している 東大の人工知能論講義の教科書にも選ばれている 26

ubuntu コマンドで画像表示 $ eog [ 画像 ] 27