狠狠撸
Submit Search
线形分类器で非线形分离+文章生成
?
Download as PPTX, PDF
?
1 like
?
2,344 views
sakura-mike
Follow
JOI2016夏季セミナー オンライン機械学習 (機械学習プロフェッショナルシリーズ) 線形分類器の説明と非線形分離のやり方 @O_mikemike
Read less
Read more
1 of 26
Download now
Download to read offline
More Related Content
线形分类器で非线形分离+文章生成
1.
線形分類器で非線形分離 +文章生成してみた 押川令
2.
線形分類器(概要) f(x)=w?x+b (w:重みベクトル、b:バイアス項)で表される分離 超平面のどちら側にあるのかで判断 このパラメーターwを最適化する 今回はオンライン学習なので、 このパラメーターを与えられたデータ 一つごとにパラメーターを微妙に更新していく
3.
線形分類器(概要) 目的関数L(w)= ? ?(?
? , ? ? , ?) →誤差的なもの この値を最小化すればいい ○勾配降下法 全てのデータについて、 L(w) をwの各要素で 偏微分して勾配を求め 下りの方向にwを動かす →すべてのデータに関して誤差が減っ ていく ○確率勾配降下法 一つのデータに対してそれのみ の勾配を求める →そのデータに対して誤差が減るL w が凸関数なら 最後には一番最小となる点にたどり着く
4.
線形分類器(概要) ? (単純)パーセプトロン 目的関数: ?
max(?????(?) , 0) 分離に失敗したら分離超平面までの距離を返す 偏微分すると勾配は???? →下がっているほうに更新するので +y?xで更新 ここを減らしていく
5.
線形分類器(概要) ? ハードマージンSVM(サポートベクトルマシン) データの境界のできるだけ中央に境界を引きたい 全て超平面で分類可能であるとして 分離超平面と最も距離の近いデータ点の距離 |???+?| ||?|| が最大に なるようにする →wはいくらでも大きくなるのでサポートベクトルについて|? ? ?
+ ?|=1としてよい つまりすべてのデータにおいて ? ? ? + ? ≥1の時、 ||?||を最小化したい
6.
線形分類器(概要) ? ハードマージンSVM(サポートベクトルマシン) データの境界のできるだけ中央に境界を引きたい 全て超平面で分類可能であるとして 分離超平面と最も距離の近いデータ点の距離 |???+?| ||?|| が最 大になるようにする ここを 1 ||?|| と置いて、それを最大化する
7.
線形分類器(概要) ? ソフトマージンSVM(サポートベクトルマシン) 目的関数: ?
max 1 ? ???? ? , 0 + ?||?||2 →分離不可能なデータについては制約を満たさない 制約の代わりにペナルティ≥ 1 ? ???? ? を組み込む ?||?||2は極端なデータが与えられたとき パラメータが無限に発散してしまうのを防ぐ 同様に偏微分して勾配は 1 ? ?? ? ? ≥ 0 の時???? + 2??
8.
線形分類器(概要) ? ロジスティック回帰 目的関数: -
? ??? 1 1+exp(?? ? ??? ?) + ?||?||2 標準シグモイド関数 1 1+exp(?) は(0,1)の範囲で動く →xに対しyと出力される確率を表している これをできるだけ大きくしたい ←みんな100%近く正しい 方に分類されるとよい 確率が半々
9.
線形分類器(概要) ? ロジスティック回帰 目的関数: -
? ??? 1 1+exp(?? ? ??? ?) + ?||?||2 標準シグモイド関数 1 1+exp(?) は(0,1)の範囲で動く →xに対しyと出力される確率を表している これをできるだけ大きくしたい 対数をとって求めやすくしている 微分不可能な点がないので、偏微分して勾配は常に (1- 1 1+exp ?? ? ??? ? ) ??? + 2??
10.
:完全に線形分離できる問題 ? ある平面で分離できる 例: C++で実装してみた パーセプトロン SVM
ロジスティック回帰 99.98 98.82 95.68 ※精度はあまり気にせず、収束判定ではなく 読み込む回数を同じにして行っています →学習できてることがわかる(当たり前)
11.
,そうでもない問題 ? 円データ ? n次関数っぽい パーセプトロン
SVM ロジスティック回帰 49.44 50.48 49.36 パーセプトロン SVM ロジスティック回帰 57.22 56.7 52.22
12.
,そうでもない問題 ? 円データ ? n次関数っぽい パーセプトロン
SVM ロジスティック回帰 49.44 50.48 49.36 パーセプトロン SVM ロジスティック回帰 57.22 56.7 52.22 ほぼ乱択
13.
? 円データ ? n次関数っぽい
14.
線形分離できない分類問題 ? 高次元の特徴空間に変換してみる 元の特徴空間におけるベクトルを,別の次元特徴空間に 変換する適切な関数を考える (例えばX^2,y^2,xyなどを特徴とする→多項式写像 他にもいろいろな非線形関数を使って写像する) 線形分離できるようになる
15.
線形分離できない分類問題 ? 高次元の特徴空間に変換する (?2 , ?2 ,
??)
16.
実装 パーセプトロン SVM ロジスティック回帰 49.44
50.48 49.36 99.00 98.10 94.36
17.
実装 パーセプトロン SVM ロジスティック回帰 57.22
56.7 52.22 81.20 82.56 93.72
18.
? 問題点 変換した特徴空間は無限に高次元になりやすくデータに 対するメモリの消費量が増えてしまう 例えば二次式で写像するとn(n+1)/2 →オンライン学習でなければカーネルトリックを使って、特 徴空間自体を参照しなくても、そこでの内積を求められる どんな非線形関数を使うかは自分で決めなければならな い(探索もできる) ? 非線形関数 ほかにも排他的論理和とかtanhとか
19.
非線形分離問題が解けるもの 例:ニューラルネットワーク 線形変換をした後に非線形関数を適用することによって 非線形分離を可能にしている(活性化関数)
20.
文章生成してみた (多クラス分類)
21.
多クラス分類 ? 二値分類を組み合わせたりすることで可能 例: 一対一 全てのクラスの組み合わせについてどちらかを二値分類 し投票数が最も多かったクラス K*(K-1)/2個の2値分類器が必要 一対他 それぞれのクラスについてそのクラスかどうかの二値分類 器を作り、スコアが最も大きいものを分類結果とする K個の2値分類器が必要
22.
いろいろ分類してみた 例:iris(アヤメの種類の分類) 4次元の情報をもとに3種類に分割する →精度:93.4% 例:Handwritten Digits(手書き文字認識) 白黒の手書き文字を10種類(0~9)に分割する →精度:92% ※一対他 割と線形分離できる
23.
文章?生成 ? せっかくなのでなんか活用したものを作ってみただけ (突貫工事) ? Mecabで単語ごとに分けてから近くの単語同士につい て、その二つの特徴の関係を調べる。 ?
特徴は品詞?活用など ? クラス分類はほぼ品詞 ? 主語をランダムに選びそこから次の単語がどんなものに なるかを多クラス分類で求めてつなげていく
24.
文章?生成 ? 適当な文章(単語数10000くらい)を教師として実行 ? 前の単語とのセットだけだと無限に同じものが出た ので何個か前まで評価する ×個人情報の保護について、 ○個人情報の保護について、 学習による出力結果を同じ品詞が続かないように調整
25.
文章?生成 ? 実行結果例(まあまあましなの) 匿名について建物が寒い 人間からさまざまに挟む ? 品詞の続き方とかだけ文っぽい ?
あんまりきれいにはならなかったです… 意味も評価したいところです。(がんばります)
26.
ありがとうございました
Download