卒研メモ:Caffeについて

 人工知能研究の一つに,ニューラルネットワークを利用したDeep Learningがあります。Caffeはそのソフトウェアフレームワークで,BSDオープンソースライセンスにて公開され,自由に使うことができます。今のところ,応用用途としてはWebのIFとして公開されている画像識別が主のようですが,ど素人が人工知能に触れつつその機能を理解するという用途には使えそうです。

 下記の画像は,このサイトのトップにある入道雲+やらまいか創造工学センターの屋上部分の写真をCaffeにかけてみたところです。完全に火山の写真と思われているようですが。

2016-03-22_121228

 ということで,ボツボツ原論文を読もうかなというところです。せっかくGPUが活用できる環境があるので,一台ぐらいはインストールしてcuDNNと格闘してみたいものです。誰かやってみませんか?

卒研メモ:堅い文章を書く際のチェックポイント

 就活,卒研等で「堅い文章」(「社会人が仕事で使う普通の文章」の意)を書く機会が増えていきます。下記のTweetに添付されたチェックポイントは堅い文章の「基本中の基本」ですので,確認しておきましょう。それ以前に「誤字脱字の確認」ぐらいは,Wordでもある程度はできるので,確実にしておきましょうね。

卒研メモ:技術系質問サイトの利用

 卒研を進めるにつれて技術的な困難に直面することが多くなります。その際には,同じ研究室のメンバーに相談,教員に相談,他の友達に相談・・・ということになるかと思いますが,相談する前にまずは「何を聞きたいのか?何が分からないのか?」ときちんと整理しておくと,聞かれる方も答えやすくなります。漠然とした疑問に大しては漠然とした回答しか得られません。

 最近ではYahoo!知恵袋等のQ&Aサイトが人気ですが,プログラミングテクニックを聞く場としては,専門家が集っているとは言えず,あまり適していないように思えます。2chもそこそこ使えますが,罵声も飛び交うし,的確な回答が得られる率はそう高くないでしょう。

 プログラミングに関しては,StackOverflowが先駆けとなり,日本語サイトもできました。最近ではTeratailというところも賑わっているようです(Internet Watch)。

 こういうところできちんとした文章で質問できるようになると,口頭でのやりとりもスムーズにできるようになります。人に理解してもらう方法論を学ぶ意味でも,積極的に活用して「疑問をまとめて的確な回答を引き出す」テクニックを身につけて下さい。

卒研メモ: Web API活用リンク

 本研究室の過去の卒研で,マイナビと連携して就活スケジュール帳を作った例がありますが,手動でHTMLを解析して必要な情報を取得するというやり方をしていました。これは今でも有効ですし,Web crawlerの実装はそのようにするしかないのですが,特定の機能を呼び出す手続き(API)を公開しているサイトの場合,その手順に従ったアプリにしておくと,表面的なWebデザインの変更があってもそれとは無関係なAPIを介したやり取りをするだけで済むので,長い間使えるものになります。

 近年は検索エンジンも大きいところはGoogleとMicrosoftのBingに集約された感がありますし(Yahoo!はGoogleに依存),有効性の強い情報はSNS(Social Networking Service)経由でやり取りされることが多くなってます。賢い人は賢い人同士,金持ちは金持ち同士,バカは・・・,貧乏人は・・・,といった感じでしょうか。貧富の格差が,良質な情報の格差と直結する昨今であります。

 ということで,卒研でも大いに大手サイトのAPIを使いましょう。

 とりあえず,GoogleとBingのAPIはこんな感じのようです(2016年3月現在)。

 Google API Explorer
2016-03-02_094939

 Bing Dev Center
2016-03-02_095458

 SNS関連ではこんなところでしょうか。

 各APIを使うためのサンプル集はちょっと検索すると見つかります。なるべく最新のものを見つけて試してみましょう。

卒研メモ:春秋-tsuフォントお試しフォーム

現在の感じのルーツに当たる古代文字のフォントを提供しているサイトがあったので,早速フォントをPNGファイルに表示するフォームを作ってみました。AJAX対応してリアルタイムで書き換えできるようにするとカッコよくなるかも。

春秋-tsuフォントお試しフォーム

[追記] OpenType, TrueType等のフォントをJavaScriptから扱えるopentype.jsなるものが存在しているので,これを使って実装することも可能ですね。但し,公開しているWeb経由でJavaScriptからフォントにアクセスできるということは,Web経由でフォントもDLできるということを意味しますので,人様が作ったフォントを勝手に配布していると受け取られかねません。とゆーことで,JavaScriptでの実装はプライベートにやるしかないようです。

卒研メモ: Waterloo大学のWebプログラミング教材

 カナダのWaterloo大学が提供しているWebプログラミング教材の出来がいいので紹介しておきます。

 次年度の卒研テーマとして,情報セミナー2で使用できるHTML, CSS3, PHP, RDB(MySQL or MariaDB)の教材の開発を考えていますので,上記の教材も参考にして下さい。

卒研メモ:JavaScript + Canvasでフラクタル図形描画

 ”JavaScript Fractal”で検索すると色々なサンプルスクリプトが出てきますが,トップに出てくるこのサイトのものが一番アプリケーションとして出来が良いようです。

Canvas Fractals

「高性能計算研究室」という看板を出している以上は,これに対して何らかの改良を施したいところです。定番の工夫としては

  • 並列化して高速化・・・Node.js環境下だとParallel.jsというのがあるらしい。以前はFirefoxネイティブにRiverTrailというIntel提供のプロジェクトがあったのですが,最近はOpenCL対応にしたとかでよく分からないことになっている。
  • 高精度化・・・手っ取り早く4倍精度化(double-double)化するというのが定番。調べたところではJavaScript実装はまだない模様(任意精度対応のBigDecimal.jsというのは存在)

というところかと。

 まずCanvasにお絵かきするためにjCanvasの勉強から始めて倍精度計算でJulia集合を描き,それを利用して4倍精度化を図る・・・という感じかしら。誰かやりません?