Enviar búsqueda
Cargar
Lisp meetup #29 cl-online-learningの紹介
•
2 recomendaciones
•
2,271 vistas
Satoshi imai
Seguir
Lisp meetup #29 cl-online-learningの紹介
Leer menos
Leer más
Software
Denunciar
Compartir
Denunciar
Compartir
1 de 20
Descargar ahora
Descargar para leer sin conexión
Recomendados
Lispmeetup #45 Common Lispで音声合成
Lispmeetup #45 Common Lispで音声合成
Satoshi imai
Lispmeetup #39 MGLの紹介: Common Lispによるディープラーニング
Lispmeetup #39 MGLの紹介: Common Lispによるディープラーニング
Satoshi imai
明日使える超高速Ruby - RXbyak (Mitaka.rb #5)
明日使える超高速Ruby - RXbyak (Mitaka.rb #5)
Shuyo Nakatani
High performance python computing for data science
High performance python computing for data science
Takami Sato
CVPR2015読み会 "Joint Tracking and Segmentation of Multiple Targets"
CVPR2015読み会 "Joint Tracking and Segmentation of Multiple Targets"
Yuki Nagai
Real world lisp
Real world lisp
秀俊 伊藤
numpyの魅力
numpyの魅力
__106__
Introduction to Chainer and CuPy
Introduction to Chainer and CuPy
Kenta Oono
Recomendados
Lispmeetup #45 Common Lispで音声合成
Lispmeetup #45 Common Lispで音声合成
Satoshi imai
Lispmeetup #39 MGLの紹介: Common Lispによるディープラーニング
Lispmeetup #39 MGLの紹介: Common Lispによるディープラーニング
Satoshi imai
明日使える超高速Ruby - RXbyak (Mitaka.rb #5)
明日使える超高速Ruby - RXbyak (Mitaka.rb #5)
Shuyo Nakatani
High performance python computing for data science
High performance python computing for data science
Takami Sato
CVPR2015読み会 "Joint Tracking and Segmentation of Multiple Targets"
CVPR2015読み会 "Joint Tracking and Segmentation of Multiple Targets"
Yuki Nagai
Real world lisp
Real world lisp
秀俊 伊藤
numpyの魅力
numpyの魅力
__106__
Introduction to Chainer and CuPy
Introduction to Chainer and CuPy
Kenta Oono
PythonistaがOCamlを実用する方法
PythonistaがOCamlを実用する方法
Yosuke Onoue
TensorFlow XLA とハードウェア
TensorFlow XLA とハードウェア
Mr. Vengineer
二階堂愛と二階堂藍の違いについて
二階堂愛と二階堂藍の違いについて
show you
深層学習フレームワークChainerとその進化
深層学習フレームワークChainerとその進化
Yuya Unno
PyCharm入門
PyCharm入門
Yuki Nagai
C++のビルド高速化について
C++のビルド高速化について
AimingStudy
My code
My code
俊 中村
M1 gp
M1 gp
亮介 小林
Rubyで実はwritev(2) が使われているはなし
Rubyで実はwritev(2) が使われているはなし
Masaki Matsushita
クリスマス?
クリスマス?
sasenomura
[DL Hacks]tensorflow/privacy Task-Embedded Control Networks for Few-Shot Imit...
[DL Hacks]tensorflow/privacy Task-Embedded Control Networks for Few-Shot Imit...
Deep Learning JP
Tcl/Tkクイック入門
Tcl/Tkクイック入門
nyaocat
PARI/GPの話 @ Ph/shh/bin CTF勉強会LT
PARI/GPの話 @ Ph/shh/bin CTF勉強会LT
__ytoku
時を超えた JavaScript の道
時を超えた JavaScript の道
Teppei Sato
2012 12 08_ngk_osm_a
2012 12 08_ngk_osm_a
Tom Hayakawa
論文紹介 "DARTS: Differentiable Architecture Search"
論文紹介 "DARTS: Differentiable Architecture Search"
Yuta Koreeda
Numpy scipy matplotlibの紹介
Numpy scipy matplotlibの紹介
Tatsuro Yasukawa
CMSI計算科学技術特論A(9) 高速化チューニングとその関連技術2
CMSI計算科学技術特論A(9) 高速化チューニングとその関連技術2
Computational Materials Science Initiative
Autopilot google kubernetes engineでargo workflowsを動かす
Autopilot google kubernetes engineでargo workflowsを動かす
shouta yoshikai
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
Yosuke Onoue
Metahub for github
Metahub for github
Suguru Oho
Kubeflowで何ができて何ができないのか #DEvFest18
Kubeflowで何ができて何ができないのか #DEvFest18
Shunya Ueta
Más contenido relacionado
La actualidad más candente
PythonistaがOCamlを実用する方法
PythonistaがOCamlを実用する方法
Yosuke Onoue
TensorFlow XLA とハードウェア
TensorFlow XLA とハードウェア
Mr. Vengineer
二階堂愛と二階堂藍の違いについて
二階堂愛と二階堂藍の違いについて
show you
深層学習フレームワークChainerとその進化
深層学習フレームワークChainerとその進化
Yuya Unno
PyCharm入門
PyCharm入門
Yuki Nagai
C++のビルド高速化について
C++のビルド高速化について
AimingStudy
My code
My code
俊 中村
M1 gp
M1 gp
亮介 小林
Rubyで実はwritev(2) が使われているはなし
Rubyで実はwritev(2) が使われているはなし
Masaki Matsushita
クリスマス?
クリスマス?
sasenomura
[DL Hacks]tensorflow/privacy Task-Embedded Control Networks for Few-Shot Imit...
[DL Hacks]tensorflow/privacy Task-Embedded Control Networks for Few-Shot Imit...
Deep Learning JP
Tcl/Tkクイック入門
Tcl/Tkクイック入門
nyaocat
PARI/GPの話 @ Ph/shh/bin CTF勉強会LT
PARI/GPの話 @ Ph/shh/bin CTF勉強会LT
__ytoku
時を超えた JavaScript の道
時を超えた JavaScript の道
Teppei Sato
2012 12 08_ngk_osm_a
2012 12 08_ngk_osm_a
Tom Hayakawa
論文紹介 "DARTS: Differentiable Architecture Search"
論文紹介 "DARTS: Differentiable Architecture Search"
Yuta Koreeda
Numpy scipy matplotlibの紹介
Numpy scipy matplotlibの紹介
Tatsuro Yasukawa
CMSI計算科学技術特論A(9) 高速化チューニングとその関連技術2
CMSI計算科学技術特論A(9) 高速化チューニングとその関連技術2
Computational Materials Science Initiative
Autopilot google kubernetes engineでargo workflowsを動かす
Autopilot google kubernetes engineでargo workflowsを動かす
shouta yoshikai
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
Yosuke Onoue
La actualidad más candente
(20)
PythonistaがOCamlを実用する方法
PythonistaがOCamlを実用する方法
TensorFlow XLA とハードウェア
TensorFlow XLA とハードウェア
二階堂愛と二階堂藍の違いについて
二階堂愛と二階堂藍の違いについて
深層学習フレームワークChainerとその進化
深層学習フレームワークChainerとその進化
PyCharm入門
PyCharm入門
C++のビルド高速化について
C++のビルド高速化について
My code
My code
M1 gp
M1 gp
Rubyで実はwritev(2) が使われているはなし
Rubyで実はwritev(2) が使われているはなし
クリスマス?
クリスマス?
[DL Hacks]tensorflow/privacy Task-Embedded Control Networks for Few-Shot Imit...
[DL Hacks]tensorflow/privacy Task-Embedded Control Networks for Few-Shot Imit...
Tcl/Tkクイック入門
Tcl/Tkクイック入門
PARI/GPの話 @ Ph/shh/bin CTF勉強会LT
PARI/GPの話 @ Ph/shh/bin CTF勉強会LT
時を超えた JavaScript の道
時を超えた JavaScript の道
2012 12 08_ngk_osm_a
2012 12 08_ngk_osm_a
論文紹介 "DARTS: Differentiable Architecture Search"
論文紹介 "DARTS: Differentiable Architecture Search"
Numpy scipy matplotlibの紹介
Numpy scipy matplotlibの紹介
CMSI計算科学技術特論A(9) 高速化チューニングとその関連技術2
CMSI計算科学技術特論A(9) 高速化チューニングとその関連技術2
Autopilot google kubernetes engineでargo workflowsを動かす
Autopilot google kubernetes engineでargo workflowsを動かす
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
Similar a Lisp meetup #29 cl-online-learningの紹介
Metahub for github
Metahub for github
Suguru Oho
Kubeflowで何ができて何ができないのか #DEvFest18
Kubeflowで何ができて何ができないのか #DEvFest18
Shunya Ueta
Pythonによる並列プログラミング -GPGPUも-
Pythonによる並列プログラミング -GPGPUも-
Yusaku Watanabe
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
Masahiro NAKAYAMA
あなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CI
Wataru MIYAGUNI
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
Kotaro Nakayama
ロボットシステム学2015年第9回
ロボットシステム学2015年第9回
Ryuichi Ueda
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
Kei IWASAKI
ファイルシステムのスナップショット機能でバックアップを取得する
ファイルシステムのスナップショット機能でバックアップを取得する
Maki Toshio
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
Yasuyuki Sugai
ML system design_pattern
ML system design_pattern
yusuke shibui
kompass_GreacとLLM_20230728.pdf
kompass_GreacとLLM_20230728.pdf
ManamiMaeda
俺とGitHub
俺とGitHub
Masayuki KaToH
再考: お買い得物件を機械学習で見つける方法
再考: お買い得物件を機械学習で見つける方法
智志 片桐
Re: 運用に自動化を求めるのは間違っているだろうか
Re: 運用に自動化を求めるのは間違っているだろうか
Masahito Zembutsu
Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!
ymmt
Open whisk slackinvite - public
Open whisk slackinvite - public
Takehiko Amano
Cloud automator的なものを実装してみる
Cloud automator的なものを実装してみる
saku hatsu
私とOSSの25年
私とOSSの25年
MITSUNARI Shigeo
Reco choku tech night #09 -reinvent2018報告会-
Reco choku tech night #09 -reinvent2018報告会-
recotech
Similar a Lisp meetup #29 cl-online-learningの紹介
(20)
Metahub for github
Metahub for github
Kubeflowで何ができて何ができないのか #DEvFest18
Kubeflowで何ができて何ができないのか #DEvFest18
Pythonによる並列プログラミング -GPGPUも-
Pythonによる並列プログラミング -GPGPUも-
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
あなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CI
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
ロボットシステム学2015年第9回
ロボットシステム学2015年第9回
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
ファイルシステムのスナップショット機能でバックアップを取得する
ファイルシステムのスナップショット機能でバックアップを取得する
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
ML system design_pattern
ML system design_pattern
kompass_GreacとLLM_20230728.pdf
kompass_GreacとLLM_20230728.pdf
俺とGitHub
俺とGitHub
再考: お買い得物件を機械学習で見つける方法
再考: お買い得物件を機械学習で見つける方法
Re: 運用に自動化を求めるのは間違っているだろうか
Re: 運用に自動化を求めるのは間違っているだろうか
Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!
Open whisk slackinvite - public
Open whisk slackinvite - public
Cloud automator的なものを実装してみる
Cloud automator的なものを実装してみる
私とOSSの25年
私とOSSの25年
Reco choku tech night #09 -reinvent2018報告会-
Reco choku tech night #09 -reinvent2018報告会-
Más de Satoshi imai
lispmeetup #73 Common Lispで関係データ学習-スパース非負値テンソル分解の実装
lispmeetup #73 Common Lispで関係データ学習-スパース非負値テンソル分解の実装
Satoshi imai
lispmeetup#63 Common Lispでゼロから作るDeep Learning
lispmeetup#63 Common Lispでゼロから作るDeep Learning
Satoshi imai
Portacle : Common Lispのオールインワン開発環境
Portacle : Common Lispのオールインワン開発環境
Satoshi imai
Lispmeetup #56 Common lispによるwebスクレイピング技法
Lispmeetup #56 Common lispによるwebスクレイピング技法
Satoshi imai
Lispmeetup #53 PythonベースのLisp方言、 Hyのすすめ
Lispmeetup #53 PythonベースのLisp方言、 Hyのすすめ
Satoshi imai
Lispmeetup #50 cl-random-forest: Common Lispによるランダムフォレストの実装
Lispmeetup #50 cl-random-forest: Common Lispによるランダムフォレストの実装
Satoshi imai
Lispmeetup48 cl-online-learningによる文書分類
Lispmeetup48 cl-online-learningによる文書分類
Satoshi imai
Más de Satoshi imai
(7)
lispmeetup #73 Common Lispで関係データ学習-スパース非負値テンソル分解の実装
lispmeetup #73 Common Lispで関係データ学習-スパース非負値テンソル分解の実装
lispmeetup#63 Common Lispでゼロから作るDeep Learning
lispmeetup#63 Common Lispでゼロから作るDeep Learning
Portacle : Common Lispのオールインワン開発環境
Portacle : Common Lispのオールインワン開発環境
Lispmeetup #56 Common lispによるwebスクレイピング技法
Lispmeetup #56 Common lispによるwebスクレイピング技法
Lispmeetup #53 PythonベースのLisp方言、 Hyのすすめ
Lispmeetup #53 PythonベースのLisp方言、 Hyのすすめ
Lispmeetup #50 cl-random-forest: Common Lispによるランダムフォレストの実装
Lispmeetup #50 cl-random-forest: Common Lispによるランダムフォレストの実装
Lispmeetup48 cl-online-learningによる文書分類
Lispmeetup48 cl-online-learningによる文書分類
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もマルチクラス分類できるよ うにする
Descargar ahora