Submit Search
Lisp meetup #29 cl-online-learningの紹介
2 likes
2,294 views
Satoshi imai
Lisp meetup #29 cl-online-learningの紹介
Software
Read more
1 of 20
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
More Related Content
PDF
Lispmeetup #45 Common Lispで音声合成
Satoshi imai
PDF
Lispmeetup #39 MGLの紹介: Common Lispによるディープラーニング
Satoshi imai
PDF
明日使える超高速Ruby - RXbyak (Mitaka.rb #5)
Shuyo Nakatani
PDF
High performance python computing for data science
Takami Sato
PDF
CVPR2015読み会 "Joint Tracking and Segmentation of Multiple Targets"
Yuki Nagai
PPTX
Real world lisp
秀俊 伊藤
PDF
numpyの魅力
__106__
PDF
Introduction to Chainer and CuPy
Kenta Oono
Lispmeetup #45 Common Lispで音声合成
Satoshi imai
Lispmeetup #39 MGLの紹介: Common Lispによるディープラーニング
Satoshi imai
明日使える超高速Ruby - RXbyak (Mitaka.rb #5)
Shuyo Nakatani
High performance python computing for data science
Takami Sato
CVPR2015読み会 "Joint Tracking and Segmentation of Multiple Targets"
Yuki Nagai
Real world lisp
秀俊 伊藤
numpyの魅力
__106__
Introduction to Chainer and CuPy
Kenta Oono
What's hot
(20)
PDF
PythonistaがOCamlを実用する方法
Yosuke Onoue
PDF
TensorFlow XLA とハードウェア
Mr. Vengineer
PDF
二階堂愛と二階堂藍の違いについて
show you
PDF
深層学習フレームワークChainerとその進化
Yuya Unno
PDF
PyCharm入門
Yuki Nagai
PPTX
C++のビルド高速化について
AimingStudy
PPTX
My code
俊 中村
ODP
M1 gp
亮介 小林
PDF
Rubyで実はwritev(2) が使われているはなし
Masaki Matsushita
PPTX
クリスマス?
sasenomura
PDF
[DL Hacks]tensorflow/privacy Task-Embedded Control Networks for Few-Shot Imit...
Deep Learning JP
PDF
Tcl/Tkクイック入門
nyaocat
PDF
PARI/GPの話 @ Ph/shh/bin CTF勉強会LT
__ytoku
PDF
時を超えた JavaScript の道
Teppei Sato
PDF
2012 12 08_ngk_osm_a
Tom Hayakawa
PDF
論文紹介 "DARTS: Differentiable Architecture Search"
Yuta Koreeda
PDF
Numpy scipy matplotlibの紹介
Tatsuro Yasukawa
PDF
CMSI計算科学技術特論A(9) 高速化チューニングとその関連技術2
Computational Materials Science Initiative
PDF
Autopilot google kubernetes engineでargo workflowsを動かす
shouta yoshikai
KEY
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
Yosuke Onoue
PythonistaがOCamlを実用する方法
Yosuke Onoue
TensorFlow XLA とハードウェア
Mr. Vengineer
二階堂愛と二階堂藍の違いについて
show you
深層学習フレームワークChainerとその進化
Yuya Unno
PyCharm入門
Yuki Nagai
C++のビルド高速化について
AimingStudy
My code
俊 中村
M1 gp
亮介 小林
Rubyで実はwritev(2) が使われているはなし
Masaki Matsushita
クリスマス?
sasenomura
[DL Hacks]tensorflow/privacy Task-Embedded Control Networks for Few-Shot Imit...
Deep Learning JP
Tcl/Tkクイック入門
nyaocat
PARI/GPの話 @ Ph/shh/bin CTF勉強会LT
__ytoku
時を超えた JavaScript の道
Teppei Sato
2012 12 08_ngk_osm_a
Tom Hayakawa
論文紹介 "DARTS: Differentiable Architecture Search"
Yuta Koreeda
Numpy scipy matplotlibの紹介
Tatsuro Yasukawa
CMSI計算科学技術特論A(9) 高速化チューニングとその関連技術2
Computational Materials Science Initiative
Autopilot google kubernetes engineでargo workflowsを動かす
shouta yoshikai
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
Yosuke Onoue
Ad
Similar to Lisp meetup #29 cl-online-learningの紹介
(20)
PDF
Metahub for github
Suguru Oho
PDF
Kubeflowで何ができて何ができないのか #DEvFest18
Shunya Ueta
PDF
Pythonによる並列プログラミング -GPGPUも-
Yusaku Watanabe
PDF
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
Masahiro NAKAYAMA
PDF
あなたの安心を高速に守る Container-based CI
Wataru MIYAGUNI
PDF
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
Kotaro Nakayama
PPTX
ロボットシステム学2015年第9回
Ryuichi Ueda
PDF
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
Kei IWASAKI
PPTX
ファイルシステムのスナップショット機能でバックアップを取得する
Maki Toshio
PDF
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
Yasuyuki Sugai
PDF
ML system design_pattern
yusuke shibui
PDF
kompass_GreacとLLM_20230728.pdf
ManamiMaeda
PPTX
俺とGitHub
Masayuki KaToH
PDF
再考: お買い得物件を機械学習で見つける方法
智志 片桐
PDF
Re: 運用に自動化を求めるのは間違っているだろうか
Masahito Zembutsu
PPTX
Git & GitHub & kintone でウルトラハッピー!
ymmt
PDF
Open whisk slackinvite - public
Takehiko Amano
PDF
Cloud automator的なものを実装してみる
saku hatsu
PDF
私とOSSの25年
MITSUNARI Shigeo
PDF
Reco choku tech night #09 -reinvent2018報告会-
recotech
Metahub for github
Suguru Oho
Kubeflowで何ができて何ができないのか #DEvFest18
Shunya Ueta
Pythonによる並列プログラミング -GPGPUも-
Yusaku Watanabe
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
Masahiro NAKAYAMA
あなたの安心を高速に守る Container-based CI
Wataru MIYAGUNI
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
Kotaro Nakayama
ロボットシステム学2015年第9回
Ryuichi Ueda
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
Kei IWASAKI
ファイルシステムのスナップショット機能でバックアップを取得する
Maki Toshio
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
Yasuyuki Sugai
ML system design_pattern
yusuke shibui
kompass_GreacとLLM_20230728.pdf
ManamiMaeda
俺とGitHub
Masayuki KaToH
再考: お買い得物件を機械学習で見つける方法
智志 片桐
Re: 運用に自動化を求めるのは間違っているだろうか
Masahito Zembutsu
Git & GitHub & kintone でウルトラハッピー!
ymmt
Open whisk slackinvite - public
Takehiko Amano
Cloud automator的なものを実装してみる
saku hatsu
私とOSSの25年
MITSUNARI Shigeo
Reco choku tech night #09 -reinvent2018報告会-
recotech
Ad
More from Satoshi imai
(7)
PDF
lispmeetup #73 Common Lispで関係データ学習-スパース非負値テンソル分解の実装
Satoshi imai
PDF
lispmeetup#63 Common Lispでゼロから作るDeep Learning
Satoshi imai
PDF
Portacle : Common Lispのオールインワン開発環境
Satoshi imai
PDF
Lispmeetup #56 Common lispによるwebスクレイピング技法
Satoshi imai
PDF
Lispmeetup #53 PythonベースのLisp方言、 Hyのすすめ
Satoshi imai
PDF
Lispmeetup #50 cl-random-forest: Common Lispによるランダムフォレストの実装
Satoshi imai
PDF
Lispmeetup48 cl-online-learningによる文書分類
Satoshi imai
lispmeetup #73 Common Lispで関係データ学習-スパース非負値テンソル分解の実装
Satoshi imai
lispmeetup#63 Common Lispでゼロから作るDeep Learning
Satoshi imai
Portacle : Common Lispのオールインワン開発環境
Satoshi imai
Lispmeetup #56 Common lispによるwebスクレイピング技法
Satoshi imai
Lispmeetup #53 PythonベースのLisp方言、 Hyのすすめ
Satoshi imai
Lispmeetup #50 cl-random-forest: Common Lispによるランダムフォレストの実装
Satoshi imai
Lispmeetup48 cl-online-learningによる文書分類
Satoshi imai
Lisp meetup #29 cl-online-learningの紹介
1.
cl-online-learningの紹介 Satoshi Imai /
今井 悟士 Twitter: @masatoi0 Github: masatoi
2.
これは何か ● cl-online-learning ● 書籍「オンライン機械学習」に出てくる線形 識別器のアルゴリズムからいくつか実装 ● 2値分類と多値分類ができる ●
githubにあります – https://github.com/masatoi/cl-online-learning.git
3.
インストール ● シェルから ● Lisp処理系から – SBCL、CCL、ECL、CLISPで動作確認済み (ql:quickload :clonlinelearning) $
cd ~/quicklisp/localprojects/ $ git clone https://github.com/masatoi/clonlinelearning.git
4.
オンライン学習 ● バッチ学習: 訓練データをまとめて学習する ● オンライン学習: 訓練データを逐次的に学習する –
とにかく速い: 収束が速い、データ数に対して線形時間、省メモリ – リアルタイム処理に組込める – 実装が簡単 – 偏りのあるデータ、ノイズのあるデータに弱い → 対策されたアルゴリズムが出てきた (AROW, SCW)
5.
線形識別器 ● 線形分離可能なデータに対して有効な二値分類器 ● 識別関数f(x)が正か負かでクラスを分ける(xは入力データ点) ● 上手く分けられるようにパラメータ(wとb)を調整する 決定境界
f(x)=0 線形分離可能 線形分離不可能
6.
非線形SVM(バッチ学習) ● 線形分離不可能なデータを高次元の特徴空間に射影して線形分離し ている様子 – https://www.youtube.com/watch?v=3liCbRZPrZA ● 計算量はO(mn^2)
(m: データの次元数、 n: データ数) – データ数が増えてくると無理 – オンライン線形分類器だとO(mn) ● Common Lisp Machine Learningからフォーク – clml-svm (github.com/masatoi/clml-svm)
7.
cl-online-learningで実装している 二値分類アルゴリズム ● 二値分類 – パーセプトロン – 平均化パーセプトロン –
線形SVM – AROW – SCW-I、SCW-II 精度 良い 悪い メタパラメータの数 なし なし 2 1 2
8.
パーセプトロン ● 学習データ: 入力x
と 教師信号y の組 ● パーセプトロン: 以下のルールでwを更新する ● 直近の学習データの影響を受けすぎる → 過去の w の更新差分を平均化 (平均化パーセプトロン) の正負と y を比べてみて、分類に失敗していれば w ← w + y x
9.
AROW ● パラメータ w
が、正規分布からサンプリングされたものと考える – その正規分布の平均 μ と分散 Σ を更新する ● 精度良い、収束速い、学習も安定している ← おすすめ! ● メタパラメータとして正則化パラメータ γ を持つ
10.
AROWは頑健 ● マージン最大化 – 決定境界から一番近いデータとの距離(マージン)を大きくとる ● 特徴量ごとに信頼度をつける – 頻繁に出てきた特徴量の更新量は減らしていく
11.
cl-online-learningで実装している マルチクラス分類アルゴリズム ● 複数個の二値分類器を組み合わせてマルチクラス分類できる ● マルチクラス分類 – 1対多 (one-vs-rest) –
1対1 (one-vs-one) – 誤り訂正出力符号(ECOC) ↑(予定) 必要な二値分類器の数 K個 K(K-1)/2個 K個とK(K-1)/2個の間
12.
one-vs-rest ● クラスの数だけ二値分類器を用意: K個 ● 学習時:
観測されたデータのクラスに対応する学習器では正例、そうで なければ負例として学習 ● 予測時: 全部の学習器で識別関数 を計算して最大の ものに対応するクラスを出力する 1 2 3 各クラスに対応する 学習器 クラス2と ラベルのついた データ 教師信号を -1 として学習 教師信号を +1 として学習 教師信号を -1 として学習
13.
one-vs-one ● 2つのクラスの組合せの数だけ二値分類器を用意: K(K1) / 2
個 ● 学習時: 観測されたクラスのノードに接続する学習器を学習 ● 予測時: 全部の学習器で分類。多数決して一番多かったクラスを出力 1 5 2 4 3 エッジが学習器に対応 1 5 2 4 3 クラス2が観測されたとき +1 -1 +1 -1 +1-1 +1 -1 ノードの数字が若い方を+1とした
14.
使い方(二値分類) ● 学習器をつくる ● データを1個用意 (double-float型のsimple-array) ● 更新する ● 予測する (defparameter input (makearray 3 :elementtype 'doublefloat :initialcontents '(1d0 2d0 3d0))) (defparameter plearner (makeperceptron 3)) (update plearner input 1d0) (predict plearner input) ⇒1.0d0 教師信号 入力次元数
15.
使い方(マルチクラス分類) ● 学習器をつくる ● データを1個用意 (double-float型のsimple-array) ● 更新する ● 予測する (defparameter input (makearray 3 :elementtype 'doublefloat :initialcontents '(1d0 2d0 3d0))) (defparameter mlearner (makeonevsone 4 3 'arow 1d0)) (update mlearner input 2) (predict mlearner input) ⇒1.0d0 教師信号(整数) 入力次元数 クラス数 学習器の型 学習器のメタパラメータ
16.
データセットの学習 ● データセット: 教師信号と入力ベクトルのドット対のリスト – Libsvmのサイトで公開されているデータセットを読み込む ● 訓練データをまとめて訓練する ● テストデータをまとめて予測する (defparameter a9adim 123) (defparameter a9atrain (readlibsvmdata "/path/to/a9a" a9adim)) (defparameter a9atest (readlibsvmdata "/path/to/a9a.t" a9adim)) (train plearner a9atrain) (test plearner a9atest) ; Accuracy: 79.988945%, Correct: 13023, Total: 16281
17.
使用上の注意 ● スケーリング大事 – 入力の各次元が [-1,
1] の範囲に入るようにする ● データの順序大事 – 同じクラスのデータが延々と続くような場合は性能悪化 ● 必要なら順序をシャッフルする
18.
iris ● 入力データ: アヤメの花びらとがくの大きさ
(4次元) ● クラス数3、データ数150
19.
番外:深層学習 ● 特徴選択をどうするかは職人芸 → 深層学習 ● ニューラルネットはオンライン学習できるが、更新ごとの計算量が大きい – ミニバッチをつくってまとめて計算 ●
GPU向きの計算(大きな行列×行列の計算) ● cl-cudaベースの深層学習ライブラリ – github.com/melisgl/mgl
20.
今後の課題 ● 疎ベクトルの演算を実装 ● 誤り訂正出力符号(ECOC)にもとづくマルチクラス分類を実装 ● cl-online-learningから流用してclml-svmもマルチクラス分類できるよ うにする
Download