2008-01-01から1年間の記事一覧

それはそうと、「勉強したら仕事なくなった」感が出た個人的な理由

なんとなく、勉強したら仕事がなくなったと思ったんだけど、実のところ仕事に困る気がしてるわけでもない。 じゃあ、なんで勉強したら仕事がなくなった、と思ったかというと、ここのところの仕事では短絡的に次の仕事につながる技術を得てないので、仕事外の…

お勉強-仕事曲線を考えてみる

ちょっと考えてみる。 勉強してる度と人数。もちろん、勉強が0の人が圧倒的に多く、入り口まではそれなりにいるけど、あるレベルからはほとんどいなくなる。 勉強してる度とその勉強を求める仕事の総量。勉強0の人には仕事がないけど、そこそこ勉強した人に…

なんで勉強したら仕事がなくなるのか

結局のところ、勉強しないとできないようなものの需要がないという話なんだけど、じゃあ、なぜそういうものの需要がないのか。 ソフトウェア会社で、情報工学の学科を出てるか相当の知識が求められるとか、入社試験でアルゴリズムの問題が出るとか、あまり聞…

ほんとに勉強したら仕事がなくなるのか

冗談半分で、「勉強したら仕事がなくなったんですけど」って言ってたら、「お前の勉強のしかたが悪いんだ」みたいなツッコミが返ってくると思いきや、「そうだよね〜」とか「当たり前だよ」的な答えが返ってくる。 どうやら、ほんとに勉強したら仕事がなくな…

いっぱい勉強してたら仕事がなくなりましたが、なにか?

やってた仕事も安定したというか、なんというか、とりあえず終わりました。 追記:まだ終わってないので、「終わります」だ。 で、ぼくが、まぁ、とても教えるのがうまいんで、こんなシステムでも引き継げちゃいました。 追記:もちろん、引き継がれた人もヤ…

日本Javaユーザーグループ主催のクロスコミュニティカンファレンスでちょっと話したいかた募集

10月16日(木)に、日本Javaユーザーグループ(JJUG)で、クロスコミュニティカンファレンス(CCC)というイベントが行われます。 場所は、代々木のオリンピック記念青少年総合センタです。 このイベントで、18:00-19:00の枠で、15分×4コマのショートプレゼンを行…

CUDAで遊んでみた

nVIDIAのGPUで並列計算を行うプログラムをCで書けるっていうCUDAで遊んでみました。 ということで、みしょさんの11以下の素因数を持つ携帯電話番号には価値がない。でのお題をやってみました。 いくつかあるのですが、このお題。 僕の携帯電話番号は113未満…

NetBeans6.1のデバッガでオブジェクト参照にバグ

NetBeans6.1ではデバッガやプロファイラで、その時点で生成されているオブジェクトがどこから参照されているかを見る機能があります。 で、こんなコードを用意。クラスBとクラスCがクラスAのオブジェクトへの参照を持っています。クラスCはスーパークラス経…

1000speakers長崎でしゃべったことと、Seasar Conferenceでしゃべること

8/9(土)に1000speakersが長崎であったので、行ってしゃべってきました。 なんの話しようかと思ってたのですが、「最近やってること」とあったので、最近やってる機械学習について。 当日は、発表直前にマシンが激重になり再起動したらタブレットが効かないな…

ナイーブベイズ分類器であいさつbot作ってみた

スパムフィルタでよく使われてる、ベイジアンフィルタのことです。これを使って「おはよう」判定してみました。 1000speakersのときに「ベイズやらないんですか?」って言われたり、tockriの人が以前「やっぱベイズよくできとるわ」とか書いてたり、テキスト…

改めて2次多項式カーネルであいさつbotをやってみる

こうですね。わかります。 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,>…

コメントがありがたすぎる件

やっぱ、こういう分野を独学でやってると、実際にやってる人からのツッコミはとてもありがたいです。 文書が与えられれば読めるんですが、論文や海外サイトを探すのはとても大変なので、「ここ読めばいいよ」と教えてもらえるのはとてもありがたいです。 あ…

あいさつbotで2次の多項式カーネルを試してみる。

こうですか?わかりません>< 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,>…

サポートベクターマシンであいさつbotを作るためのカーネル関数

Twitterの発言に、「おはよう」かどうかのフラグをつけてSVMに食わせると、その発言が「おはよう」かどうか判定できるようになるので、「おはよう」判定したら「おはよ〜」と返すようにするとあいさつbotのできあがり。 というときに問題になるのが、カーネ…

Googleストリートビューが楽しい

日本ではじまった模様。 2chで拾ったのをまとめてみた。南西に移動するのがお気に入り 新幹線 飛行機 ちょっとに〜ちゃん 目撃 目撃2 おっさん 南西に移動 なくなりました

「どこの店がいい?」「どこでもいいよ」にどう対応するか

福岡ならどっかその辺の店に入ればよろしい。 おいしくないということはまずない。 イタリアンは探すのがめんどうだから、魚がうまそうな店に入ればいいと思うよ。 福岡で、魚がうまそうな店で魚がうまくない店はないから、大丈夫。 あとは、サラダと刺身と…

ガウシアンカーネルのパラメータを自動的に求めてみる

サポートベクターマシンでよく使うガウシアンカーネルでは、パラメータが重要になるということを書きました。 で、ちょうどいいところに、id:audioswitch:20080730で、そのガウシアンカーネルのパラメータを自動的に求める方法が書かれていたので、試してみ…

ところでサポートベクターマシンって何なの?

最近、機械学習とか、そのアルゴリズムのひとつであるサポートベクターマシンとかやってるわけですが、そもそも機械学習ってなんなんでしょか? 機械学習ってのは、なんとなく与えられた点の分類から、新たに与えられた点の分類を推測するのですが、ようする…

SMOの収束速い!

KKT条件だけじゃなくて、変位の合計を見て収束しているかどうか判定するようにしたら、これめちゃくちゃ収束速いじゃないですか。 非線形分離の方で50回程度、線形分離の方だと2回とか3回で収束しちゃってます。 線形分離の場合で分離面が全然変なところに行…

SVMの学習用アルゴリズムSMOを実装してみる

SVMは2次最適化問題になるので、それを勉強してみてはということだったのですが、SVMに特化したSMO(Sequential Minimal Optimisation)アルゴリズムがあるということなので、そちらをやってみました。 SVMの制約条件に というのがあって、yiは正例なら1、負…

Seasarは自由ではない?

公式なところ以外では質問してはいけないというのは、どうかと思うのですが。 Seasarの技術情報を2chで求めるのはやめなさい 2chは、技術横断的な質問を同じ場所で行えて、しかもある程度のレベルの答えが返ってくる稀有な場所だと思うのですが、それを使っ…

Log4Jでファイルを動的に切り替える

ユーザーの指定によって出力先を変えたりするとき。 とりあえず、ファイルを閉じれないとファイルの書き込みが完了しなかったり、ファイルをにぎりっぱなしになったりするので、closeFileを呼び出してファイル閉じたいのだけど、protectedなので、継承してpu…

ログその後

結局、Log4Jの設定ファイルは記述が難しすぎて教育できないということで、設定ファイルは表に出さず普通にlog=true/false程度のプロパティで切り替え自体は自前でやることになって、それなら別にどのログAPIでもえぇやん、ということになりましたとさ。 めで…

Log4Jの落とし穴

ということで、Log4Jを使おうと思ってlog4j.jarをクラスパスに含めたら、今までおとなしかったライブラリがモノを言い始めた。 まずはBeanUtils。でも、これはloggerがねぇよ!って言ってるだけだったので、log4j.properties的なファイルにこんなのを追加す…

java.util.logging使えね

実行状況を表示してるのをファイルにも書いてとか、プロパティで出力の有無を切り替えれるようにしてとか言われて、ログAPIを使おうと思って、とりあえず標準のjava.util.logging使おうと思ったんだけど、設定がインストールしたJDK全体に及ぶとか、使えなす…

これを線形時間で解くには

さて、これで求めたい文字列が得られたわけですが、ここでアルゴリズムとして全ての順列について検査しているので、計算時間がO(n!)になってしまいます。 そこで、これを線形時間、つまり、入力文字列数nと出力文字列数mに比例した計算時間O(mn)になるように…

こんなプログラムを作ったけど

こないだの問題。 http://d.hatena.ne.jp/nowokay/20080717 Javaで書くとこんな感じか。 public class SBH { public static void main(String[] args){ sbh(new String[]{"BAB", "ABA", "AAB", "AAA", "BAA"}); sbh(new String[]{"BAB", "AAB", "AAA", "BAA"…

こんなプログラムを書いてみよう

文字列の集合{ BAB, AAB, BAA, AAA, ABA }があるとき、これらのすべてを1回ずつ含み、かつ、3文字の部分文字列としてはこれらの文字列しか含まない文字列は、BABAAABとBAAABABの2通りある。 文字列の集合が{ BAB, AAB, BAA, AAA }のときは、そのような条件…

サポートベクターマシンの本

うちにある本で、サポートベクターマシン(SVM)について書いてある本をあげてみます。 まずは、これ。機械学習ってなんなの?という人におすすめ。パーセプトロンからSVM、ニューラルネットワークときて、そうやってできた学習機械の評価方法についても書いて…

ソフトマージンサポートベクターマシン

いままでやってたSVMは、動きがそうなってるかどうかは別として、学習データが誤判別されないように識別面を選ぶのですが、学習データの中にありうる外れデータを考慮できるようにするのがソフトマージンSVMです。 いままでやってたのはハードマージンSVMと…