2020年12月31日木曜日

2020年買ったもの

2020年は良くも悪くもコロナの一年でした。外出が減って、自宅での時間が増えたことから、自宅環境を整えるべく大分色々買いました。今年買ったもので、お気に入りを紹介。

2018年12月31日月曜日

2018年振り返り

今年もあっという間に終わってしまいましたが、振り返ってみれば昨年以上に、ここ数年で一番よい一年だったように思います。

2018年4月22日日曜日

「人工知能」という言葉を使わない訳

私は仕事柄、「人工知能」とか「AI」というものを扱っていることになっている。ところが、私は「人工知能」や「AI」という言葉をほとんど会話の中で使わない。使うときも極めて選択的な文脈でしか使わない。この業界、こういう人は多いようだ。昨年、知り合いの主催するパネルディスカッションのテーマとして、「人工知能」という言葉についてどう思うかと言った議論を扱い、そこで普段言いたかったことを吐き出したのでこちらにも書いておきたい。 なぜ使わないかといえば、端的に言えば、人によってこの言葉の意味の捉え方が全く違うため、「言葉」として機能しないからだ。

2018年1月28日日曜日

Automatorを使ってMacでKindleをプリンター代わりに使う

普段、論文は紙に印刷して読むのですが、家でも会社でも印刷物が溢れていたり、同じのを何回も印刷してよろしくない。 かねてよりKindleをプリンター代わりに使えないかと思っていたのですが、実はプログラミングなしでそれができることを知ったので、備忘録的に紹介します。

2017年12月31日日曜日

2017年振り返り

年に2回しか投稿していないですが・・・。今年は本当に色々あって、そして特に振り返ると良いニュースがたくさんあってとても良い1年でした。

2017年5月26日金曜日

「深層学習による自然言語処理」を書きました

5/25に,IBMの坪井さんと,NTTの鈴木さんと書いた「深層学習による自然言語処理」というタイトルの本が発売されました. 特に昨年1年間は,土日や夜をかなり潰したので,ようやく発売されたなぁと感慨深いものがあります. 最終稿の直前で,図を差し替えたり,変な文が見つかったりしたので,まだ変な誤植があるかもしれませんし,読みにくいところもあると思います.

2017年1月5日木曜日

2016年振り返り

あけましておめでとうございます.あっという間に2016も終わって2017年になりました. 明日から仕事です. 気づいたら1年に1回しか投稿してませんね. 昨年の振り返りしてみます.

2016年1月23日土曜日

2015年振り返り

あけましておめでとうございます、というには日が経ちすぎました。 年末年始は京都と愛知を訪問しつつ、慌ただしく帰ってきました。 毎年書いている、昨年の振り返りをしてみます。

2015年10月23日金曜日

Chainerのtype_check

だいぶ前ですが、Chainerのver. 1.1.0から、型のチェック機構が入りました。 この機能は、各Functionが呼ばれた時に、動作条件を満たしているか確認するものです。 Pythonだから型のチェックがなくて大変だと思われがちですが、実際には行列サイズに対する制約の方が多く、典型的な静的型付け言語の型システムだけでこれらを弾くのは難しいです。

最初に設計しているときから、この機能が必須だろうと思っていて、メインで作っていたのでその話を書きます。

2015年9月23日水曜日

「Deep Learningの基礎と最新動向」のセミナーで自然言語処理に関する講演をしました

9/11に、中部大学・藤吉先生監修の「Deep Learningの基礎と最新動向」というセミナーの、自然言語処理への応用の回を担当しました(すでにサイトは消えている)。セミナー自体は別の企業主催の有料セミナーでした。資料は有料セミナーにつき非公開です。私が第5講で、同日に第6講の画像処理の東大・中山先生の講演を聞けました。私の話した内容は、認知科学会サマースクールの内容と概ね同じで、埋め込みベクトル(word2vec)、構造の学習(recurrentとrecursive)、知識の学習(knowledge baseの表現学習と、memnnやneural reasoningなど最近の話)の3部構成。最近ちょっとおもっているのは、QAにつなげるよりMTにつなげたほうが広がりがよい感じがするんですが、世間的な期待感(?)という点ではQAの方がいいのかな。

2015年9月19日土曜日

首都大学東京の集中講義で講義を行いました

9/9に、昨年に引き続き、首都大学東京の小町先生担当の、情報通信特別講義で非常勤講師として一コマ分講義を行いました。講義と言っても、2時間の講演で気楽なものです。 内容は、学部1,2年生向けの授業ということで、個別の技術というよりは今後の学生生活で技術に対してどのように向い合って欲しいかという、オッサンの小言のような内容です。 実は前職の同期が聞きに来ていて、焦りましたw

2015年9月11日金曜日

NLP若手の会(YANS)第10回シンポジウム合宿を開催しました

9/3-5に、石川県和倉温泉でNLP若手の会(YANS)第10回シンポジウム合宿を開催しました。記念すべき第10回ということだけではなく、西川、岡崎、海野体制になってから初の開催、そして私が主幹事。学生を含む委員も半分以上が初めての学会仕事で、準備段階から右も左もわからないところからなんとか開催までこぎつけました。みんな不慣れな中、最後の片付けまで頑張ってくれたと思います。至らないところもあったかと思いますが、楽しんでいただけたなら幸いです。

幾つかこっそり立てていた目標があったので達成状況を確認すると・・・

  • 参加者100人(達成、102人)
  • デモ発表10件(達成、飛び込み6件合わせて13件)
  • エンジニア参加者15人(未達、スポンサー・委員以外で9人、但しスポンサー招待枠以外合わせると20人)
  • エンジニア発表5件(ギリギリ達成?、2件(内1件は共著)+当日飛び込み4件=6件、但しほとんどスポンサー)
  • スポンサー10社(達成、14社)

ということで、なかなかの成果というような気がします。 スポンサーしながら参加、という形態が多いようですね。 これだけの数の参加者、スポンサー企業様、発表者の中、うまく開催出来たのはひとえに委員の皆様の努力の賜物だとおもいます。

認知科学会サマースクールで登壇しました

2015/08/31に、箱根湯本富士屋ホテルで開催された、認知科学会のサマースクールで登壇しました。 内容は最近の自然言語処理関連の、深層学習に関するまとめです。 単語、文法、知識の3つのテーマに対して、埋め込みベクトル、構造の学習(recurrentとrecursive)、知識ベースの学習の3つに分けて話しました。 この1年位で作ったslideのまとめみたいな感じになっています。

2015年7月14日火曜日

YANS合宿まであと2ヶ月

NLP若手の会シンポジウムまで2ヶ月を切りました。 ちょっと遅れていますが、論文募集も始まります。 その前にいま考えていることを書いておこうと思いました。

2015年6月20日土曜日

統計数理研究所のオープンハウスで招待講演に招かれました

2015/6/19に、立川にある統計数理研究所のオープンハウスで、招待講演に招かれました。 内容は昨年名大やNIIで行ったものの延長ですが、この半年くらいのアップデート(特に言語処理周辺の深層学習周り)があります。 最後、時間足りなくなってしまった・・・。

最近ロジテックのワイヤレスプレゼンターを買ったので、TEDばりに壇上で話してみようと思ったら、予想外にスライド見えなくて難しいものですね。 スライドと整合性のが取りにくいので、スライドは簡素な絵だけにした方が良さそう。 丸山さんに相談したら、スライドは簡素にして、それとは別にWordで原稿を書いているそうな。 勉強になる。

2015年6月6日土曜日

PFIセミナーで知識ベースに対する表現学習の話をしました

PFIセミナーで、知識ベースに対する埋め込みを学習する表現学習手法に関してまとめて発表しました。 タイトルがDeep Learningになってるのは釣りです。 色々調べると、想像以上に最近(2011年くらい)やられ始めた話で、またほとんどがBordesとWestonのもの、あるいは彼らが共著に入っていて、2人共気づいたらfacebookに入って、先日話題になったmemory networksにつながるというキレイな(?)展開になっていました。

2015年5月14日木曜日

BIgData Conferenceで特別講義を行いました

4/21に、日経ビッグデータラボ主催のBigData Conference 2015 Springにて、「予測型戦略を知るための機械学習チュートリアル」とういタイトルで特別講義を行いました。 人数限定の有料セミナーだったので、広く配信はされていません。

主に、機械学習の基本的な説明から、個別の機械学習のテーマ(教師あり・なし・強化学習など)、いくつかの代表的な手法、深層学習ブーム、実験・運用に関わるはなしなどを、なるべく教科書に書かれていないようなスタイルで実体験に基づいて行いました。 途中、30分だけGunosyの関さんにゲストスピーカーとして話して頂いて、3時間の講義時間の内の2時間以上話していました。 さすがに疲れました。 イベント自体は大御所の先生もたくさん来ていて、大変恐縮・・。

2015年4月20日月曜日

日本語で読める自然言語処理のチュートリアルスライドまとめ

先日、自然言語処理の講演などをしていたときに、そもそも私なんかが話すよりも公開されているチュートリアルスライドを集めたほうが有用なんではないかと思い立って、これから自然言語処理を学びたい人や、ちょっと新しい分野を知りたい人向けに、日本語で読めるチュートリアルスライドを分野別にまとめてみました。 主に、学会のチュートリアルや招待講演、それから研究者の方のWebページなどを参照しながら作りました。 自然言語処理全般系の資料や、少し境界的なテーマは入っていません。 また、ぱっと読めるスライドだけにしています。 幾つか手前味噌な資料も載せてます・・。

頑張って集めてみましたが、思ったほど集まりませんでした。 作っていてわかったのですが、意外とスライドを公開している人は少ないようです。 埋もれてしまうのはもったいないですね。 いずれ、英語で読めるスライドを集めてみようと思います。 そっちはそっちで、数が多すぎて大変そう。

2015年4月9日木曜日

オンライン学習の本が出版されました

2015/4/8に、会社のメンバー4人で執筆したオンライン学習の本、「オンライン機械学習」が講談社より発売されました。 自分自身が機械学習の専門家であるという自負は微塵もないのですが、長らくJubatusの開発をしていましたので実装的な視点や実応用的な視点で書くことがあるだろうと思って少しだけ執筆に参加しました。 本当は、自然言語処理の応用を大量に書いたり、実装のツラミみたいなコラムを最初ガッツリ書いたのですが、いくつかのトピックがなくなったり応用多すぎと突っ込まれて消えていってしまいました。

オンライン機械学習 (機械学習プロフェッショナルシリーズ)
オンライン機械学習 (機械学習プロフェッショナルシリーズ)海野 裕也 岡野原 大輔 得居 誠也 徳永 拓之

講談社 2015-04-08
売り上げランキング : 260


Amazonで詳しく見る
by G-Tools

2015年4月7日火曜日

自然言語処理と最適化

さて言語処理学会の年次大会で気になった発表などについて書いてみます。 といっても、個別の発表にというよりは全体感です。 今年気になったのは、最適化について少し考えなおしたほうがいいのかなということでした。

'},ClipboardSwf:null,Version:'1.5.1'}};dp.SyntaxHighlighter=dp.sh;dp.sh.Toolbar.Commands={ExpandSource:{label:'+ expand source',check:function(highlighter){return highlighter.collapse;},func:function(sender,highlighter) {sender.parentNode.removeChild(sender);highlighter.div.className=highlighter.div.className.replace('collapsed','');}},ViewSource:{label:'view plain',func:function(sender,highlighter) {var code=dp.sh.Utils.FixForBlogger(highlighter.originalCode).replace(/'+code+'');wnd.document.close();}},CopyToClipboard:{label:'copy to clipboard',check:function(){return window.clipboardData!=null||dp.sh.ClipboardSwf!=null;},func:function(sender,highlighter) {var code=dp.sh.Utils.FixForBlogger(highlighter.originalCode).replace(/</g,'<').replace(/>/g,'>').replace(/&/g,'&');if(window.clipboardData) {window.clipboardData.setData('text',code);} else if(dp.sh.ClipboardSwf!=null) {var flashcopier=highlighter.flashCopier;if(flashcopier==null) {flashcopier=document.createElement('div');highlighter.flashCopier=flashcopier;highlighter.div.appendChild(flashcopier);} flashcopier.innerHTML='';} alert('The code is in your clipboard now');}},PrintSource:{label:'print',func:function(sender,highlighter) {var iframe=document.createElement('IFRAME');var doc=null;iframe.style.cssText='position:absolute;width:0px;height:0px;left:-500px;top:-500px;';document.body.appendChild(iframe);doc=iframe.contentWindow.document;dp.sh.Utils.CopyStyles(doc,window.document);doc.write('

'+highlighter.div.innerHTML+'

');doc.close();iframe.contentWindow.focus();iframe.contentWindow.print();alert('Printing...');document.body.removeChild(iframe);}},About:{label:'?',func:function(highlighter) {var wnd=window.open('','_blank','dialog,width=300,height=150,scrollbars=0');var doc=wnd.document;dp.sh.Utils.CopyStyles(doc,window.document);doc.write(dp.sh.Strings.AboutDialog.replace('{V}',dp.sh.Version));doc.close();wnd.focus();}}};dp.sh.Toolbar.Create=function(highlighter) {var div=document.createElement('DIV');div.className='tools';for(var name in dp.sh.Toolbar.Commands) {var cmd=dp.sh.Toolbar.Commands[name];if(cmd.check!=null&&!cmd.check(highlighter)) continue;div.innerHTML+=''+cmd.label+'';} return div;} dp.sh.Toolbar.Command=function(name,sender) {var n=sender;while(n!=null&&n.className.indexOf('dp-highlighter')==-1) n=n.parentNode;if(n!=null) dp.sh.Toolbar.Commands[name].func(sender,n.highlighter);} dp.sh.Utils.CopyStyles=function(destDoc,sourceDoc) {var links=sourceDoc.getElementsByTagName('link');for(var i=0;i');} dp.sh.Utils.FixForBlogger=function(str) {return(dp.sh.isBloggerMode==true)?str.replace(/
|<br\s*\/?>/gi,'\n'):str;} dp.sh.RegexLib={MultiLineCComments:new RegExp('/\\*[\\s\\S]*?\\*/','gm'),SingleLineCComments:new RegExp('//.*$','gm'),SingleLinePerlComments:new RegExp('#.*$','gm'),DoubleQuotedString:new RegExp('"(?:\\.|(\\\\\\")|[^\\""\\n])*"','g'),SingleQuotedString:new RegExp("'(?:\\.|(\\\\\\')|[^\\''\\n])*'",'g')};dp.sh.Match=function(value,index,css) {this.value=value;this.index=index;this.length=value.length;this.css=css;} dp.sh.Highlighter=function() {this.noGutter=false;this.addControls=true;this.collapse=false;this.tabsToSpaces=true;this.wrapColumn=80;this.showColumns=true;} dp.sh.Highlighter.SortCallback=function(m1,m2) {if(m1.indexm2.index) return 1;else {if(m1.lengthm2.length) return 1;} return 0;} dp.sh.Highlighter.prototype.CreateElement=function(name) {var result=document.createElement(name);result.highlighter=this;return result;} dp.sh.Highlighter.prototype.GetMatches=function(regex,css) {var index=0;var match=null;while((match=regex.exec(this.code))!=null) this.matches[this.matches.length]=new dp.sh.Match(match[0],match.index,css);} dp.sh.Highlighter.prototype.AddBit=function(str,css) {if(str==null||str.length==0) return;var span=this.CreateElement('SPAN');str=str.replace(/ /g,' ');str=str.replace(/');if(css!=null) {if((/br/gi).test(str)) {var lines=str.split(' 
');for(var i=0;ic.index)&&(match.index/gi,'\n');var lines=html.split('\n');if(this.addControls==true) this.bar.appendChild(dp.sh.Toolbar.Create(this));if(this.showColumns) {var div=this.CreateElement('div');var columns=this.CreateElement('div');var showEvery=10;var i=1;while(i<=150) {if(i%showEvery==0) {div.innerHTML+=i;i+=(i+'').length;} else {div.innerHTML+='·';i++;}} columns.className='columns';columns.appendChild(div);this.bar.appendChild(columns);} for(var i=0,lineIndex=this.firstLine;i0;i++) {if(Trim(lines[i]).length==0) continue;var matches=regex.exec(lines[i]);if(matches!=null&&matches.length>0) min=Math.min(matches[0].length,min);} if(min>0) for(var i=0;i