機械学習
ChatGPTのヤバいところは、論理処理が必要だと思っていたことが、じつは多数のデータを学習させた確率処理で解決可能だと示したことだと思います。 たとえば、このように正規表現にマッチする文字列を生成するには、特別に専用の論理処理が必要だと思ってい…
Stable Diffusionで遊んでるんですが、こういうのが出ました。 透かし入ってますね。 これ面白いのは、透かしの入った画像をひっぱってきてしまったわけではなく、Stable Diffusionが透かしを学習してわざわざ入れてるところですね。 なので、くっきりと文字…
「偶然ルネッサンス絵画っぽくなった写真」というブログ記事があって、このタイトルからStable Diffusionで画像生成したらどうなるかなと試してみた。 I've tried generating images with the Stable Diffusion using the titles in the blog 'Accidental Re…
Stable Diffusion楽しいですね。こんな画像が生成できました。 ちなみに「呪文」はこんな感じです。 Silver fairies home madeup of flowers, magical world, by greg rutkowski, sung choi, photo realistic, 8 k, cinematic lighting, hd, atmospheric, hy…
ChatGPT、すごいですね。 Javaは素晴らしいという歌も作ってくれます。すばらしい。 Java素晴らしいという歌を作ってもらいました。https://t.co/Dx94koO2ti pic.twitter.com/E4tWK5FbeM— きしだൠ(K1S) (@kis) 2022年12月1日 プログラミング関係ではいろいろ…
8月の頭からディープラーニングを実装していたのを、先日、プレゼンしてきました。 プログラマのための数学勉強会@福岡 - connpass ぼくの実装した最弱のディープラーニング from なおき きしだ GPU対応したり、ドロップアウトとかミニバッチとかいろいろ実…
最近流行りのディープラーニングなるものを実装しようと思ってます。 いまやろうとしてるのは、画像認識のための畳み込みニューラルネット(CNN)です。 一応、コードを書いてみるには書いてみたんですけど、失敗。 下のノイズっぽいのが一段目のフィルタ群な…
なんかJJUGナイトセミナーで機械学習をやるっぽくて、定員100人が40人キャンセル待ちとかになってますね。 【東京】JJUG ナイト・セミナー「機械学習・自然言語処理特集!」12/17(水)開催 - 日本Javaユーザーグループ | Doorkeeper ということで、予習用だ…
画像同士の距離が取れるなら、ビール画像の判定プログラムもできるよね。 ってことで、手持ちの画像をSVMに食わせてみて、ビール画像を判定させてみました。 誤判別?なにそれ ソースはこんな感じ。 ビールの画像はbeerがついたフォルダかファイル名にしてく…
CCVで画像同士の距離が取れたってことは、画像同士どれが近いかというマップができるよね。 ソースはこんな感じで
ということで、昨日のColor Coherence Vector使って、似た画像を検索するプログラム作ってみた。 ちょっと簡単に似た画像を求めたいときには、なかなかよさげ。 左側がキーになる画像 ソースはこんな感じで。最初のパスには、画像のフォルダを入れてください…
こちらで紹介されてたアルゴリズムをJavaで実装してみました。 Color Coherence Vectorを実装してみた 詳しい説明はあちらを見てもらうとして、前処理をした画像はこんな感じ 結果はこんな感じ。ここでは、横を200ドットに制限して、20ドットを閾値にαとβを…
スパムフィルタでよく使われてる、ベイジアンフィルタのことです。これを使って「おはよう」判定してみました。 1000speakersのときに「ベイズやらないんですか?」って言われたり、tockriの人が以前「やっぱベイズよくできとるわ」とか書いてたり、テキスト…
こうですね。わかります。 double kernel(Map<String, Double> x1, Map<String, Double> x2){ double n = 0; for(Map.Entry<String, Double> ent : x1.entrySet()){ if(!x2.containsKey(ent.getKey())) continue; n += ent.getValue() * x2.get(ent.getKey()); } return (n + 1) * (n + 1); } ということで、2</string,></string,></string,>…
こうですか?わかりません>< double kernel(Map<String, Double> x1, Map<String, Double> x2){ double n = 0; List<String> strs = new ArrayList<String>(); for(Map.Entry<String, Double> ent : x1.entrySet()){ if(!x2.containsKey(ent.getKey())) continue; strs.add(ent.getKey()); } for(String s1 : strs){ for(Str</string,></string></string></string,></string,>…
Twitterの発言に、「おはよう」かどうかのフラグをつけてSVMに食わせると、その発言が「おはよう」かどうか判定できるようになるので、「おはよう」判定したら「おはよ〜」と返すようにするとあいさつbotのできあがり。 というときに問題になるのが、カーネ…
サポートベクターマシンでよく使うガウシアンカーネルでは、パラメータが重要になるということを書きました。 で、ちょうどいいところに、id:audioswitch:20080730で、そのガウシアンカーネルのパラメータを自動的に求める方法が書かれていたので、試してみ…
最近、機械学習とか、そのアルゴリズムのひとつであるサポートベクターマシンとかやってるわけですが、そもそも機械学習ってなんなんでしょか? 機械学習ってのは、なんとなく与えられた点の分類から、新たに与えられた点の分類を推測するのですが、ようする…
KKT条件だけじゃなくて、変位の合計を見て収束しているかどうか判定するようにしたら、これめちゃくちゃ収束速いじゃないですか。 非線形分離の方で50回程度、線形分離の方だと2回とか3回で収束しちゃってます。 線形分離の場合で分離面が全然変なところに行…
SVMは2次最適化問題になるので、それを勉強してみてはということだったのですが、SVMに特化したSMO(Sequential Minimal Optimisation)アルゴリズムがあるということなので、そちらをやってみました。 SVMの制約条件に というのがあって、yiは正例なら1、負…
うちにある本で、サポートベクターマシン(SVM)について書いてある本をあげてみます。 まずは、これ。機械学習ってなんなの?という人におすすめ。パーセプトロンからSVM、ニューラルネットワークときて、そうやってできた学習機械の評価方法についても書いて…
いままでやってたSVMは、動きがそうなってるかどうかは別として、学習データが誤判別されないように識別面を選ぶのですが、学習データの中にありうる外れデータを考慮できるようにするのがソフトマージンSVMです。 いままでやってたのはハードマージンSVMと…
とりあえず最適化の問題は置いておいて、ここを参考に非線形分離できるようにしてみました。 http://www.neuro.sfc.keio.ac.jp/~masato/study/SVM/SVM_3_1.htm さぁ,これで君も非線形SVMのコーディングができちゃうのだ.素晴らしき哉. ほんとにできた。 …
とりあえずの目標はサポートベクターマシンてことで、次のサイト参考に組んでみました。*1 http://www.neuro.sfc.keio.ac.jp/~masato/study/SVM/index.htm なんか、なぜかちゃんと角度的にはいい感じになってるけど、ぜんぜんマージン最大化していません。見…
ニューラルネットというのは、入力があって、複数の階層を経て出力を得るようなグラフ構造のことです。通常は、入力層・中間層・出力層のように層構造になっているようなものを差します。中でも、中間層が1層の、3層構造になっているものが多くとりあげられ…
パーセプトロンでは線形分離できない場合に対応できないということでしたが、これを可能にする方法を[id:nowokay:20080318]でしましまさんに教えてもらっていました。 実装してみるとこんな感じで、非線形分離できるようになりました。 x^2、xy、y^2を新たに…
ということで、パーセプトロンがどんな感じで判定してるかを見てみました。 判定の境界が直線になっていることがわかります。パーセプトロンは、こういう具合に判定結果を分離する直線(平面)を求めるもので、これが線形分離ということです。そのため、線形分…
NN法だと識別の境界ががたがたすぎるので、3-NN法っていうのを使ってみます。 3-NN法は、近いほうから3つの学習パターンをとってきて、そのうちの多数決で識別する方法です。そういう意味では、NN法ってのは1-NN法になります。 そうすると、識別の境界がち…
NN法で学習した結果が、どんな感じの判定になるのか表示してみます。 2パラメータの学習データで、どういう風に判定されるのかを表示しています。 NN法では、一番近い学習データによって判定しているので、学習データに関しては正しい判定結果になります。け…
とりあえず、パターン認識の一番の基本になるNearestNeighbors法(NN法)でやってみます。 NN法は、判定するデータが、学習に使ったデータのうちの一番近いものに分類する方法です。 自分の字で学習させて自分の字を判定させるなら、これでいいかも、とか思う…