フツーって言うなぁ!

フツーなサラリーマンのフツーな嘆き.

最近読んだ本を晒しとく

お久しぶりです.
4ヶ月近く放置してしまいました…

とりあえずリハビリとして,読んだ本の感想とかを適当に並べてお茶を濁しておきたいと思います.

「Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)」

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

業務で既存のAPIを設計からリニューアルすることになったが,その過程での先輩とのディスカッションで,

先輩「どうせなら今時のイケイケなRESTful APIにしたいよね」
ぼく「あーRESTfulですね.はいはいあのRESTfulか…」

こんな感じで会話を終えた後,すぐにAmazonを検索して,名著との評価のあった本書を読むことに決めた.

タイトルだけからだと非常につかみにくいが*1,本書は,

  • 最初にWebの歴史について触れた上で,
  • HTTPの仕様とURI,HTML,JSONなどの関連技術について説明し,
  • 現時点でのWebサービス設計のベストプラクティスとされるRESTについての説明と実際の設計手法につなげる

形で論を進めている.

基本的な計算機科学とWebの知識を持っている人がWebサービスを作っていくにあたって,どのようにリクエスト/レスポンスのインタフェースを設計していけばいいのか迷った時に本書は適していると思う. また,具体的なソフトウェア(Webフレームワークなど)の実装には(歴史の説明は除いて)全く言及しておらず,非常に普遍的な視点から知識を得ることができると思った.

Junit実践入門 ~体系的に学ぶユニットテストの技法~」

JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus)

JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus)

これも,同じ案件でJunitをがっつり書く機会ができたので,ベストな方法論が知りたくて買った.

今まで「なんとなく」ユニットテストを書く機会はあったが,どのような観点でテストケースを作成すればよいのか,作成した各テストケースをどのようにクラスタリングすればよいのかについては,自分の中でまとまったものがなかった.

本書は,「なぜユニットテストを書くのか」といった基本のところから,テスト技法の紹介,4フェーズテスト(事前準備 -> テストクラス実行 -> 結果の検証 -> 事後処理)についての説明と来て,実際にJunitの機能の説明に移る.
ここまででも,今までなんとなくテストを書いていた自分には学びがあった.

機能説明の後は,テストダブル(いわゆるスタブ,モック),カバレッジについての説明から,TDDやBDDの説明が進む.
この辺については,抽象的な説明が続き,巻末の実例集を見ても,あまり実感がわかなかった.

全体的に見て,Junitの解説書としては十分な出来だと思う.
これに加えて,Mockitoの解説記事をいくつか読めば,現在のJunitを用いたシステムテストについてはほぼおさえられるのではないだろうか.

「どんどん話すための瞬間英作文トレーニング」

どんどん話すための瞬間英作文トレーニング (CD BOOK)

どんどん話すための瞬間英作文トレーニング (CD BOOK)

相変わらず英会話力に不安を抱えているのだが,最近特に気になるのが,「英語での発話(返答を含む)開始までにかかる時間」.

もともとコミュニケーションには不安があり,日本語でも「あの,えーとですね…」からしか会話を始められない私だが,英語での会話だと,それにさらに2-5秒の「言いたいことを英語に変換する時間」が追加される.
こうなると,複数人の会話に入っていけないのはもちろん,一対一の会話ですら,相手に話し続けられてしまってコミュニケーションにならない.
この時間を短縮したいと思ったのが本書を買った動機.

本書に記載してある例文と対訳は,どれも中学英語で見たことのあるものばかり.
しかし,いざこれを「3秒で訳して発音しろ」と言われると,なかなか表現が出てこない.
また,「それっぽい」表現が出てきたとしても,"Does"になるべきところが"Do"になってしまっていたり,"more smarter"なる謎英語がでてきたり,自分の中に正しい英語を落とし込めているとは言いがたい.
「まず,中学英語レベルの表現を問題なく(素早く)引き出せるようになってから,英文法書にあるような例文を練習すると良い」というようなことが本書のまえがきに書いてあり,「なるほどな」と思った.

とりあえず2周ぐらいしてみたが,まだまだ英語ペラペラは遠いと感じる.

*1:本書をちゃんと題するなら,「HTTPとRESTアーキテクチャ」が正しいように感じる

声優ハッカソンに行ってきた

2/27,28に楽天株式会社主催で行われた,「声優ハッカソン」に行ってきました.

rakutenwebservice.doorkeeper.jp

apps.rakuten.co.jp

このハッカソンの売りは,「声優さんの声を自分たちの作ったアプリに使える」ということ.

自分もアプリを開発したことは何度かあるのですが,一素人が「声優さんに声を当ててもらえる」という機会に恵まれることはなかなかなく,声素材を集められずにアイデアを断念する,といったこともそれなりにあったように思います.

このハッカソンなら,声優さんにあんなことこんなことを言ってもらうことができる!

「これは参加するしかないだろう」ということで,妄想膨らむ大学の同期と参加を決めました*1

作ったもの

声優ハッカソン20160227 チーム16(Blind Busters!!)中間発表スライド / レテ さん - ニコナレ

自分たちのチームが作ったのは,「ブラインドバスターズ!」という,「声優さん演じる妖精ちゃんの指示を聞きながら見えない敵を倒していく」アクションゲーム.

最初に議論を進めていくうちに,スイカ割りに着想を得て,「声優さんに指示を出してもらって,その気持ちいい声を聞きながら楽しめるアクションゲームがあれば面白いのではないか」という話になりました.

例えば,前から敵(プレイヤーには見えない幽霊)が襲ってくると「右によけて!」って指示してくれる感じ.

ハッカソン前から,デザイン面,ゲーム性の議論など,少しづつ準備をすすめ,本番に望みました.

感想

「声のプロである声優さんに時間をいただいて,こちらの欲しい音声を収録してもらえる」というのは,開発者冥利に尽きるものがありました.

正直,声が入っているか否かで,アプリとしての完成度が5倍は違いました.

また,ハッカソンそのものとはあまり関係なくてアレですが,声優さんの生声録音の現場に立ち会わせてもらうことができたのが本当にいい経験でした.

収録直前に出した原稿にもかかわらず,こちらが指示したキャラ設定をちゃんと考えて,ほぼ一発撮りでセリフを撮り終えてしまう声優さんの凄さに感動しました*2

残念だったのは,プレゼン中,PCからの音声の出力ができずに,アプリのデモができなかったこと.

こんなケアレスミスでせっかくの機会をフイにしたのは初めてで,正直クソがつくほど悔しかったです.

後で再チャレンジの機会をいただきましたが,「事前の接続チェックは大事」という,プレゼンの基本を痛感させられました*3


僕のレベルの低い質問にも嫌な顔せず答えてくれたチームのみなさん,このような素晴らしい機会を与えて下さった主催の方々,そして,音声を収録していただいた菅沼千紗さんをはじめとする,今回ご協力いただいた声優のみなさま,本当にありがとうございました!

*1:決して声優さんと写真を撮りたかったとかそういうのではないです

*2:その後,余った時間で仕事についても少しだけお話させてもらいました.噂には聞いていましたが,声優,厳しい職業なんですね…

*3:受賞を逃したことよりも,やったことを出しきれなかった不完全燃焼感が自分の中であまりにも許せなかったので,再チャレンジタイムに真っ先に手を挙げました.その瞬間,たしかに「自分にもまだこんな情熱が残ってるんだ」と感じ,それに関してだけは自分を褒めてやりたい気分です.

いろいろ新調した

働き始めて初めて「ボーナス」なるものをいただいたので,前から欲しいと思っていたものをちょいちょい買っています. 体組成計とか,カジュアルコートとか,キーボードとか*1

Majestouch MINILA US67キー 茶軸 FFKB67M/EB

Majestouch MINILA US67キー 茶軸 FFKB67M/EB

組成計については,とりあえず己の身体の今の状況を知るようにするだけでも,健康的に生きようと思えるかな,と思って買いました. 「定期的に体重測るだけでも痩せる」って言いますし.

キーボードについては,今までは,Windows機向けに3k特価品のワイヤレスキーボードを使っていました. 別にそれに不満があったわけではなかったんですけど,ちょっとサイズが大きかったのでコンパクトなものが欲しかったというのと,仕事で使ってるMBAのUSキーボードとできるだけ配列を揃えてストレスを減らしたいな,というのがあって,買い換えることを決めました*2

あとは,タブレット端末を買ってみたいのと,髭剃りを新調したいのですが,なかなかいい感じのものが見つからず,保留しています. こういうのって,悩む時間も結構楽しいんで別にいいんですけど!

*1:小市民なので10万以上する買い物とか旅行はなかなか実行できないレテです.お金も貯めたいですし

*2:あと,皆が使ってる高級キーボードってそんなにいいモノなのかというのを確かめてみたいという気持ちも

昨年のまとめと今年の抱負

あけましておめでとうございます(遅

最近,目標を持ち続けて暮らすというのは非常に難しいことなんだと痛感しております. 年のはじめぐらいは何か新しいことを始めようという気になりたいですね.

去年のやつ↓ lethe2211.hatenablog.com

去年のまとめ

1月

修論に向けて実験していた. 自分の実験は被験者を使うタイプのものであるため,やり直しが効かないので少しつらかった.

Code Thanks Festivalの入賞祝いに焼肉会に連れて行ってもらった. 東京の焼肉はレベル高いと思った.

2月

修論提出と発表. 最後の2週間程度は研究室に数日泊まりこんでは風呂に入りに帰る生活だった(実験の結果は出ていたので,字数を埋める&英語に直すという作業を続けるだけ). 発表会ではボコボコにされたが,最終的には高評価をつけていただいた.

3月

研究室の連中+αと,イタリアに卒業旅行に行った. ヴェネツィアフィレンツェ,ローマという鉄板ルート. 期間が1週間だったので,他の国にも行きたいという話があったが,1つの国の都市をまわるというのも楽しかった.

4月

東京に引っ越し,今の会社に入社した. 全体研修は面倒な課題が多く,総合職の人たちとの人間関係にも馴染めなかったが,開発研修に入ってからは,自分が好きな開発ができて結構楽しかったと思う. 「もっと英語勉強しないといけないな」と痛感した.

5月

引き続き研修. 同期とも少し仲良くなって,飲みとかリアル脱出ゲームとか行ってた.

6月

第2希望の部署に配属された. 希望の部署ではなかったが,大規模トランザクションを扱う部署で,今はそこそこ気に入っている.

7月

特筆すべきこと無し.

8月

オフィスが引っ越しになって,徒歩通勤になった.

9月

特筆すべきこと無し.

10月

Pycon JP 2015に行った. さすがにPythonのカンファレンス,データ解析系の講演が多く,ツールや方法論など,ためになった.

11月

友達と1泊2日でGoのハッカソンをした. 私の友達は技術力の高い連中ばかりで,全員初修の言語であったにもかかわらずある種の劣等感を感じつつも励みになった.

大学の学園祭を見に京都に戻った. バイト先の人達と久しぶりに喋れてよかった. 住んでいた時は「住みにくい」とか京都を散々ディスってたけど,また行きたくなった.

12月

学会発表でオーストラリアに行った. 質疑応答に全く答えられなかったことは本当に残念だったが,いい経験になったと思う.

今年の抱負

今年の抱負は「正直に生きる」にしたいです.

これは,他人にも,自分にも嘘をつかないということです. 他人になんとなく(悪意なく)ついた嘘が人を想像以上に苦しめてしまったり,自分への嘘・ごまかしで生きることが苦しくなってしまったり. 失望されても嫌なやつになってもいいから,正直に自分の気持ちを表現することが,人間関係構築の第一歩なのかな,と最近強く感じるのでした.

国際学会AIRS2015に参加してきた

気がつけば前に記事書いてから3ヶ月経ってました…
文章を書く習慣をつける目的でブログを続けてきましたが,一度途切れるとやる気が無くなってしまうの,本当に良くないですね.

本題.
修論の内容をまとめた論文が国際会議に通ったので,有給取って参加してきました.

今回参加したのは,AIRS2015という会議.
"IR"という文字が示す通り,情報検索系の研究が中心の国際会議で,オーストラリアのブリスベンで開催されました.

AIRS2015

以下に参加記を記しますが,会議メモというよりは,ほぼ旅行記だと思ってもらえれば.

  • 1日目(移動日)

幸いにも,成田<->ブリスベンは今年の8月から直行便が出ているらしく,そちらで向かうこととなった.

f:id:lethe2211:20151206155743j:plain

  • 2日目(会議初日)

会議当日5時*1ブリスベン国際空港着というなかなかのきついスケジュール.
とりあえずホテルに荷物を預け,会場のクイーンズランド工科大学に向かった.

f:id:lethe2211:20151206155929j:plain f:id:lethe2211:20151206155947j:plain

f:id:lethe2211:20151206160001j:plain ↑会場

現地は夏だと聞いていたので,半袖のTシャツも持って行ったが,25度ぐらいのちょうどいい気温.*2

f:id:lethe2211:20151206160042j:plain

会場付近でしばらく時間を潰していると,会議がスタート.

最初のキーノートセッションは,量子力学の考え方を,情報検索における適合性の考え方に導入しようという試みについての講演.
正直,よくわからなかった…

この日の昼に自分の発表があった.
内容は,検索エンジン結果ページ(SERP)の改善について.

f:id:lethe2211:20151206160029j:plain

発表自体はトチらずに終わらせたが,英語での質疑応答があまりにもできず,質問者に日本語で話させるという,国際学会ではありえない失態を犯してしまった.

↑つらい

その後のポスターセッションでは,大きなスクリーンに圧倒されながらも,お酒を飲みながら,つたない英語でポスターやデモの話を聞いていた.

f:id:lethe2211:20151206160219j:plain

f:id:lethe2211:20151206160232j:plain f:id:lethe2211:20151206160241j:plain

  • 3日目(会議2日目)

この日最初のセッションに,2つ目のキーノートがあった.
検索における正解集合(テストコレクション)をどのように作っていくか,という話.
現在の情報検索の研究は,従来の「適合」「非適合」といった単純なものではなく,検索者の様々な要求に対応する必要があり,それに応じて,テストコレクションの方も,評価者の専門性を考慮したり,ユーザのごとの視点の違いを取り入れる必要がある,とのことだった.
こちらは,内容的にも自分たちの分野と近く,比較的聞きやすかった.

あとは,自分の発表が終わったこともあり,のんびりと発表を聞きつつ,後輩とお昼休みに外に出て,大学の近くを流れるブリスベン川を眺めていたりした.

f:id:lethe2211:20151206160508j:plain f:id:lethe2211:20151206160521j:plain

会場の大学で見つけた面白いもの.
ポスターセッションでも使われた大きなモニタに,重力や元素への理解を深めるための(?)タッチパネルを使ったゲームや,果ては,全く関係ないブロック崩しができたりする.
どこに金をかけてるんだろう大学というよりまるで科学館のアトラクションのような展示だった.

f:id:lethe2211:20151206162044j:plain f:id:lethe2211:20151206162055j:plain f:id:lethe2211:20151206162109j:plain

この日のセッション終了後には,バンケットという形で,ブリスベン川を遊覧するディナークルーズがあった.

f:id:lethe2211:20151206160550j:plain f:id:lethe2211:20151206160615j:plain f:id:lethe2211:20151206160623j:plain f:id:lethe2211:20151206160636j:plain f:id:lethe2211:20151206160646j:plain

  • 4日目(会議最終日)

この日もセッションを聞きつつ,ちょこっと抜け出してコアラ見に行った.

行ってきたのは,ブリスベン郊外にある,Lone Pine Koala Sanctuaryという動物園.

Lone Pine

f:id:lethe2211:20151206161038j:plain

日本では珍しい動物のコアラだが,この動物園はコアラの保護区になっているらしく,そこら中コアラだらけで,もはやありがたみが薄くなるレベル.

f:id:lethe2211:20151206160845j:plain

また,コアラを抱いて一緒に写真を撮ることができる場所があり,もふもふのコアラを抱いたまま引きつった笑顔で写真に撮られていた.

コアラかわいい.けど結構重い.*3

他にも,カンガルーに直接触れられる場所があったり,カモノハシ見れたり,カラフルな鳥に餌をやるイベントがあったり…
ブリスベンに来る機会があれば絶対に行くべきスポットだと思う.

f:id:lethe2211:20151206160919j:plain f:id:lethe2211:20151206160941j:plain f:id:lethe2211:20151206160953j:plain f:id:lethe2211:20151206161004j:plain f:id:lethe2211:20151206161012j:plain f:id:lethe2211:20151206161019j:plain f:id:lethe2211:20151206161028j:plain

ブリスベンの町並み.
観光地って感じはしないけど,キレイで普通に良い街だと思う.

f:id:lethe2211:20151206165811j:plain f:id:lethe2211:20151206165815j:plain

市街に戻ってきた後は,tukka restaurantという,地球の歩き方に載ってたレストランで夕食.
メニューにはカンガルーの肉やエミューの肉なんかもあって,せっかくだし食べようと思ったけど,直前で日和ってアヒルを食べてしまった.
これ,たぶん後で「食べとけばよかった」って後悔するやつだな…

f:id:lethe2211:20151206161142j:plain

その後は,Queen Street Mallという,ブリスベンの中心街をブラブラしたり,カジノに行ったりしていた.
後輩氏はスロットで掛け金を2倍にしている中,わずか3分で10$を擦り,自分にギャンブルは向いていないと再び痛感.

f:id:lethe2211:20151206161219j:plain ↑カジノ

それまでは,会場とホテルを往復するだけだったが,この日は結構観光できて楽しかった.

  • 5日目(移動日)

帰りの飛行機は朝早く出発だったので,出発後特に何かすることもできず空港まで直行.

おみやげにワインとお菓子を買って,飛行機に乗った.
飛行機内で見た,「ミッション・インポッシブル」の新作と,「夜は短し歩けよ乙女」*4が面白かった.

f:id:lethe2211:20151206161309j:plain

夜は短し歩けよ乙女 (角川文庫)

夜は短し歩けよ乙女 (角川文庫)


こんな感じです.

国際会議への出席は2回目ですが,口頭発表したのは初めてだったので,質疑応答がつらかったですね.
もっと英会話うまくなりたいです.

学会について. 採択率はfull paperで32%(29/92)と,そこまで高くない会議です.
発表者がポスター・デモ発表含めて40人程度と,あまり規模が大きくなく,すべてシングルセッションで聞くことができるため,「発表をする/聞く場」としてよくできているな,という印象でした.
著者同士のコミュニケーションもわりと活発だったので,初めて行く国際会議としては結構いいところだと思います.

こういう学会に出るたびに,自分も何か研究続けたくなりますね…

*1:時差があるので日本的には早朝4時

*2:結果的に半袖は不要だった

*3:オーストラリアの中でも,地域によりルールが異なるらしく,コアラを抱けるのは実質この動物園だけらしい

*4:行く前に買った

「人工知能は人間を超えるか」を読んだ

表紙に釣られて読みました.

著者,松尾豊先生は,日本における人工知能分野のトップクラスの研究者の一人です. Webにおけるビッグデータ分析と,その人工知能への応用について研究しておられます*1

松尾 豊

本書の主題として挙げられているのは,タイトル通り,「人工知能は人間を超えるか」です. 現在,Googleによるネコ画像の認識技術の公開や,IBMの質問応答システム「ワトソン」がクイズ番組で優勝するなど,人工知能分野は,メディア等でたびたび話題に上がる「春の時代」となっています. こういったものの裏返しとして,人工知能については様々な情報が錯綜していることから,「人工知能によってこれから実現するようになることと実現しないこと」,「人工知能の技術を使ってできることのうち,本当にすごいこととそこまですごくないこと」などを,研究者としての冷静な視点から紹介していく,というのが本書の目的となっています.

本書の流れとしては,まず,人工知能の現在までに至る研究の歴史を紹介し,人工知能の定義を,「気づくことのできる」コンピュータ,つまり「データの中から特徴量を生成し現象をモデル化することのできるコンピュータ」とした上で*2,これからの人工知能関連技術の発展についての著者の予測を述べるという形で締めくくられています.

人工知能研究の歴史

本書では,人工知能研究には大きく分けて,

  1. 第1次AIブーム:「推論」,「探索」をベースとした「古典的な」人工知能の時代(例:パズルを解くためのプログラム).パズルやゲームなどは高速に解けるようになったが,現実の問題が解けないため廃れてしまった.
  2. 第2次AIブーム:「知識」の導入による人工知能の汎用化(例:エキスパートシステム.人間がルールベースの「知識」をコンピュータに与えることで,病気の診断や投資判断などに役立てる).「知識」の定義は難しいことと,それを人間が与えるには莫大なコストがかかることがネックとなった(フレーム問題,シンボルグラウンディング問題).
  3. 第3次AIブーム(現在):「機械学習」の導入,特に「ディープラーニング」の発見による人工知能のさらなる飛躍(例:サポートベクターマシン,ディープラーニング).パターン認識の分野技術を応用し,大量のデータに対して分類器を構築することで,自動的な「学習」が行えるようになる.特に,「ディープラーニング」を始めとする「特徴表現学習*3」では,今まで手動で設定していた,分類のための特徴量についても,自動で構築することが可能になり,データさえあれば,ほぼ全自動で分類器を構築することができるようになる(「目が2つあって,ヒゲが生えてて…」のような「ネコらしい画像の特徴」を人間が与えることなく,ネコの画像とそうでないものを分類することができる).

の3つの時代があるとしています.

自分は情報系の大学出身ですが,人工知能については残念なほどにわかなので,人工知能研究の歴史的過程をまとまった形で知ることができただけでも,「この本を買った価値はあったな」と感じることができました. 特に,ディープラーニングについては,名前こそ聞いたことがありましたが,具体的に何か知っていたわけではなかったので…

また,自分が面白いと感じたのは,言語を「シニフィアン(記号としての言語,「ネコ」という字面,発音など)」と「シニフィエ(概念としての言語,「ネコ」というものは,目が2つで,ヒゲが生えてて…というアレ)」に分けた上で*4,「シニフィエ」に機械学習における特徴を対応させるという考え方です. 本書で挙げられていた例として,今までの人工知能は言語の「意味」を理解することができないため,シマウマを知らない状態で「シマのあるウマがシマウマである」という情報だけを与えられても,「シマ」と「ウマ」に対応する概念が理解できないため,「シマウマ」を理解できないという問題がありました*5. これに対し,「特徴表現学習」では,こうした概念を「特徴量」と「その値(概念)」をセットにして学習することができるようになるため,「シマ」,「ウマ」それぞれに対する「シニフィエ」を学習することができるようなり,後は,それらが「シマ」,「ウマ」であるという「シニフィアン」さえ与えられれば,上記の情報から「シマウマ」を新たに定義できるようになります. 言語の概念を機械的に定義する手法としては,Mikolovらのword2vecが有名ですが,こういった考え方自体は前からあったものだったというのが発見でした.

人工知能研究の「これから」

その後は,「特徴表現学習」という大きな武器を得た人工知能のこれからについての話になります.

詳しくは本書を読んでいただきたいのですが,「データから特徴量を学習する」という大きな山を超えた人工知能は,最終的には,人間の言語を(字面だけではなく,概念として本質的に)獲得し,大量にある言語データから知識を獲得できるようになる,と著者は予測しています. そうなった時,おそらく人間にはとうてい太刀打ちできないような「知能」が誕生するのでしょう.

同時に,著者は,少なくとも現状の研究を進めていくだけでは,「人工知能が自らより賢い人工知能を作ったり,人間を征服しようとしたりする」未来は訪れないとしています. 人間と違い,人工知能には「生命」が結びついていないため,自己を複製したり,何かを征服しようとする「本能」が存在し得ないから,というのが理由です.

完成した人工知能というのは,本質的にはただただ「世界の分類器」であり,世界中の事象をセンサから学習し,分類アルゴリズムにしたがって予測を行う,自分が子供の頃に描いていた「スーパーコンピュータ」のようなものなのでしょうか?

加えて,著者は,特徴表現学習によって生み出される「人工知能」が,必ずしも「人間の知能」を模倣したものにならない可能性を指摘しています. 特徴表現学習によってコンピュータが獲得する「概念」が人間のそれと必ずしも一致しないためです.

同じ「ネコ」というものを,人間とコンピュータが全く別の「概念」として認識するというのは,一見直観的ではないように感じられますが,よくよく考えてみると,人間一人一人にしても,同じものに対して同じ「概念」を持っているのではないので,不自然なことはないのだろうな,と思いました. もしこのギャップが本質的なものではなく,努力によって埋められるものであれば,コンピュータと人間の相互理解,なんてことも現実になるのかもしれません.

産業への影響

最後に,人工知能の飛躍によってもたらされる,産業への影響について述べられています.

読んでいて面白かった部分として,著者は,人工知能技術を一部の企業が独占することについての懸念を述べています. 特徴表現学習をはじめとするこれからの人工知能技術は,学習結果から,リバースエンジニアリングなどによってその中身のアルゴリズムを知ることが非常に困難です. そのため,一度よい学習アルゴリズムを作ってしまえば,それを秘匿した上で学習結果のみを公表する形でのビジネスモデルが形成可能であり,それを進めていくうちに,よい学習結果が得られるところにデータもどんどん集まっていく…という,独占の構造ができあがってしまいます.

様々なIT企業がこぞって人工知能分野に手を出しているのも,こういったことを睨んでということなのでしょうが,人工知能が人間を征服する世の中よりも,よっぽど起こり得るこわい話だな,という印象でした.


「シンギュラリティ(技術的特異点*6」という言葉があります. 定義はいろいろあるようですが,要するに,近々,人間より知性のある人工知能が誕生し,それが人間に取ってかわりこれからの技術革新の担い手となる,という考え方です. これまでも,人間の歴史の中でこういったパラダイムシフトは何度かありましたが,今度は,人間が最も誇りにしていた「知性」を機械に取られてしまう,というわけですね. そうなった時,人間はどうやって生きていったらいいのか,僕の人間の仕事はどうなるのか,というのは非常に考えさせられる話題でした.

また,本書の特徴として,なるべく数学的な話には触れず,直感的な理解を促すような例示をしながら解説するような配慮がなされている点が挙げられます. 人工知能に関しては,抽象的な話題が多くありますが,特に数学的な素養がなくとも読み進められるようになっており,これ一冊で人工知能の歴史と展望について,十分に理解することができるのではないかと思います.

「イヴの時間 劇場版」 [Blu-ray]

「イヴの時間 劇場版」 [Blu-ray]

*7

*1:自分も一度だけ講演を聞く機会がありました

*2:データを中心に人工知能を考えるのも,ビッグデータ分析に携わってきた著者の特徴的な考え方なのかな,と感じました

*3:"Representation learning"の本書における日本語訳

*4:https://ja.wikipedia.org/wiki/%E3%82%B7%E3%83%8B%E3%83%95%E3%82%A3%E3%82%A2%E3%83%B3%E3%81%A8%E3%82%B7%E3%83%8B%E3%83%95%E3%82%A3%E3%82%A8

*5:これを「シンボルグラウンディング問題」というそうです.初めて知りました

*6:https://ja.wikipedia.org/wiki/%E6%8A%80%E8%A1%93%E7%9A%84%E7%89%B9%E7%95%B0%E7%82%B9

*7:本書帯のキャラクターは,こちらのアニメ「イヴの時間」に出てくるアンドロイド,サミィです.「イヴの時間」は,人間とアンドロイドの共生を描いた,非常に考えさせるSF作品なのでぜひ見ていただきたいです

Web系企業に入社して4ヶ月,思うこと

気づいたら1ヶ月記事書いてませんでした.
放置してる間になぜか前の記事がホッテントリに入ってました.な,何を言ってるk(ry

b.hatena.ne.jp

本題.

就活という名の血を血で洗う厳しい競争の末,なんとか希望だったWeb系企業に入社して4ヶ月が経ちました.
現在,夏休みを頂いてゆるゆる暮らしております.

実際に企業に入ってみて,外から見ているだけではわからないような,いいこと悪いこといろいろあったのですが,備忘録も兼ねて文章に残しておこうかと思います. なるべく,自分の学生時代に漠然と考えていた「かいしゃ」のイメージとの比較で書けたらいいなと思っています. なお,実名については一切出す気はありませんので,もし読んでいて何かを察したとしても心の中にとめておいてください…

よかったこと

お金がもらえる

当たり前のことですが非常に大事です.

金銭を得られるということは,生活にある種の自由度が与えられるということであり,例えば,学生時代には行けそうもなかった,6,000円/人の居酒屋とかに行けたりするわけです. これは,その人のメンタリティや,その人が関わるコミュニティの変化にもつながってきます.

また,与えられる金銭が,その人にかかる「責任」への対価であるということも重要です. 遅刻一つ例にとっても,学生時代にはせいぜい怒られて済む問題ですが,企業だとその分確実に給料から引かれ,ヘタをするとクビになる可能性すらあります.よく言われることではあるのでしょうが,自分のやっていることに責任を持つということが,社会人になるということの大きな意味なのかなとは感じました.

コードが書ける

企業を選ぶ時点で,「Excelと戯れるだけでコードを書かない」タイプの企業ではないと思っていましたが,わりとコーディングの機会も多そうで,その点は満足しています.

現在はOJTという形で,PHPSymfonyを使った小規模開発案件を1つ任されています. やはり,自分が書いたプログラムが世間様にさらされ,サービスとして使われるというのは感慨深いものがありますね.

ちなみに,コーディングスキルそのものについては,研修も含め,誰も教えてくれませんでした. 一応,入社試験にプログラミングの試験が含まれているので,新卒にもある程度のスキルは担保されているのだと思いますが,そういう意味では即戦力を求められているのかなと感じました.*1

向上心の高い人が多い

エンジニアとして最も大切なことは,「今より良い方向へ改善する」という気持ちだと思います. その点,先輩社員の方々は,ただ今のシステムに詳しいだけでなく,常に「次はこれをどうしていったらいいか」を考えられる人たちだと感じました. また,業界柄か,転職によるステップアップを考えている方も多そうでした.

ギャップを感じたこと

コードを書くだけが仕事ではない

これは,企業/部署によって大きく違うと思うので,あまり強く主張できないかもしれないのですが.

自分もITサービスをかじったことがあるのである程度はわかっているつもりなのですが,趣味のコーディングとは異なり,企業でのシステムは「開発してハイ終わり」というわけにはいきません. 作ったものを運用し,適宜改善していくことではじめて,継続的に価値を生み続けられるものになるのです.

私が実際に業務に入ってすぐに感じたのは,「あ,このシステムの仕様全部把握するの無理だ…」ということでした. 企業の規模が大きくなるにつれ,システムの規模も大きくなり,かつ複雑化していきます. 企業としてビジネスを回していく以上,可用性の極めて高いシステム作りをしていく必要があり,そのために,「そのシステムについてはなんでも来いの専門家」というのが絶対に必要になってきます. その「システムの専門家」は,技術的にシステムに詳しいことはもちろん,他部署からのシステムについての質問や改善の要望にも答えないといけませんし,トラブルが発生した時には対処する必要があります.*2 また,退職,休暇など,その「システムの専門家」が会社からいなくなる可能性もあるので,*3他の人を教育する必要もあります. 加えて,システムの全体像に関するドキュメント,仕様書などを書く必要があります. これも,システムが改修されるとすぐに古くなったり,散逸してしまうので,適宜更新していかないといけません. こういった「地味な」運用業務を行うことも,エンジニアとして重要なのだと感じたのは,企業に入って得られた気づきなのかなと思っています.

使える技術の制限

前項で述べたように,ビジネスを回すことを中心にシステムを運用することを考えると,(イケてそうだけど)「信頼できない」技術に手を出すのが怖くなるのも仕方ないのかな,とは思います. それに加え,特に大企業になると,開発に携わる人の技術力・システムへの熟練度もピンキリになってしまいます.*4 そこで,開発ノウハウやライブラリが蓄積されている技術を使うことで,起こる問題を減らすということが行われています.

救いなのは,多くのエンジニアが「それはよくないことだ」と捉えて,常に新技術を使える可能性を模索し続けていることです. 初めは社内ツールなど,比較的影響の少ない所から始めてノウハウを蓄えていき,徐々に本番環境にも適用していくという形が一般的なのかなと思いました.

コミュ力は大事

結局,この記事はこれが書きたかっただけなのかもしれません.

「Web系の技術職なんてコードを書くだけの仕事なのになぜコミュ力が必要なのか」,私もコミュ力を要求する面接を受けながらそう思っていました. しかし,今考えてみると,直属の上司,他チーム,他部署の人たち,などなど,会社内部の様々な人達と関わることが,この仕事の本質なのだろうかとすら感じるようになってきました.

前述の通り,大規模なシステムの全てを理解するということは非常に困難であり,仕様を把握するだけでも,コードから全てを読み解くのは相当の時間を要します. また,その人がいかにスーパーなエンジニアであっても,その企業独自の仕様(自分が経験したものとして,社内ツールの使い方,ドキュメントの場所,サーバの独自仕様とか)については,事前知識として知りようがありません. こういう「外からでは勉強しようのないこと」は,自分が考えていた以上に多かったです. このように,「聞かなければわからないこと」,また「聞かなくてもわかりそうだけど聞いたほうが早いこと」については,さっさと聞いて覚えてしまうことが重要です. また,大きな企業だと,多人数(といってもうちの部署はアジャイルが中心なので10人弱ぐらい)で開発を行ったり,アプリケーション担当とシステム担当が部署的に分かれていたりして,他部署に依頼する形でサーバの設定を行うことなんかも多々あります.

ここで言う「コミュ力」とは,気のおけない友達と楽しくやるための能力ではなく,面識のない人(や苦手な人)と上手くやっていく能力です. *5 一度も話したことのない人に絡みに行くのは,コミュ障の自分には結構つらいものがありましたが,それでも「これも含めて仕事だ」と思うようにすることで,なんとかやっていっています.

番外

可処分時間の大幅な減少

学生時代に比べると,自分の自由にできる時間は感覚的に1/5ぐらいになっていると思います. 定時に働く必要があるのはもちろん,帰ってからも疲れが残っているため,なかなかその後に何かしようという気にもなれません.*6 逆に,土日を有効活用して遊びに行ったり,読書をしたりということは増えたような気がします. 要するに,時間が少なくなった分,メリハリを付ける必要に迫られるわけですね. 何が言いたいかと言うと,もう少し休みをください…

「同世代」コミュニティの崩壊

これもよく言われることですが,10代後半~20代の人間がほとんどを占める大学と比較して,企業では20代以上の様々な世代の人が一緒に働いています. もちろん,Web系企業は比較的「若く」,自分の会社でも40代以上の人はあまり見かけないのですが,それでも話が合わないことが結構あります. これは,友達を探す上で非常に厄介. うーむ,なんとかならんものか…


自分が入社したのはWebサービスを自社で開発,運用しているタイプの大企業であり,「Web系企業」と題するのは主語が大きい気はするのですが,雰囲気は感じ取ってもらえたかと思います.
自分の就活時代を思い出すと,エンジニアとお話させていただく機会は何度かありましたが,このような「ナマの感想」を聞く機会はあまり多くなかったように思います.*7
参考になれば幸いです.

SHIROBAKO 第8巻 (初回生産限定版) [Blu-ray]

SHIROBAKO 第8巻 (初回生産限定版) [Blu-ray]

*8

*1:大変な分,子供扱いされずに一人の社員として見てくれるのは嬉しくもあります

*2:トラブルはわりと頻繁に起こります.その際は直接会社へ行くか,リモートで解決することが多いようです

*3:これはWeb系全般に言えることだと思いますが,離職率が高く,本当にぼつぼつ抜けていきます

*4:これに関しては,Web系はまだマシな方だと思います

*5:個人的には,この2つは全く別の能力だと思っています

*6:そこら辺はバイタリティによるのかもしれませんが

*7:先方が話したがらなかったというよりは,こちらの発想力が貧困で,聞きたいことをうまく掘り返せなかったといった方が正しい?

*8:24話の「目先のことばかり考えている時期はもう終わりだよ。そろそろ、少し高い所から遠くを見る時がきたんだよ。」というセリフが本当に刺さります.早くBDで見たいです