タグ

ブックマーク / kivantium.hateblo.jp (13)

  • PythonからGNU Socialを使う - kivantium活動日記

    先日Twitterに障害が発生した際に「Twitterが落ちてつぶやけない」というつぶやきができなくて非常に苦しい思いをしました。 また、Twitter社の収益が怪しく買収交渉も失敗したという噂も流れています。 なんにせよTwitterがなくてもつぶやきを続行できる代替サービスが必要です。 現在有力な代替サービスだと思っているのはGNU Socialです。 開発元がGNUなのでもちろんソースが公開されているため自分でサーバーを立てることもできますが、既存のサーバーにアカウントを作る方が簡単です。 サーバーにはいろいろあるようですが、見た範囲で有力そうなのは gnusocial.net 開発元? Quitter.se Twitterをやめた人々? GNU/Smug "We are a GNU Social instance that cares about cute anime girls.

    PythonからGNU Socialを使う - kivantium活動日記
  • 精度保証付き数値計算(その1) - kivantium活動日記

    コンピュータ上で実数を表現する際には浮動小数点数を使うのですが、浮動小数点数の計算では誤差が発生します。 簡単な例を見てみます。 #include <cstdio> int main(void) { float a = 0.0; for(int i=0; i<10000; ++i) a += 0.01; printf("%.10f\n", a); } という0.01を10000回足すプログラムを実行すると結果は100.0029525757となり、期待される100.000000000に比べて0.003ほどの誤差が発生しています。 浮動小数点数計算での誤差を抑える一番簡単な方法はfloatではなくdoubleなどのより精度の高い型を使って計算精度を上げることですが、どうしても限界はあります。 他にも問題ごとにテクニックは存在しますが、誤差を完全に無くすことはできません。 正確な計算のためには誤

    精度保証付き数値計算(その1) - kivantium活動日記
  • 全探索によるニューラルネットワーク最適化の実験 - kivantium活動日記

    先月に[1602.02830] Binarized Neural Networks: Training Deep Neural Networks with Weights and Activations Constrained to +1 or -1というニューラルネットワークを二値化して計算する論文が発表されました。(訂正:2つの論文があるように記述していましたが、両者は同じチームによる単なるバージョン違いだったようです) 2値化して十分な精度が出るのであれば専用ハードウェアを構成することでニューラルネットワークの計算を大幅に高速化できる可能性があります。また、演算器を100個並べられるなら、どんなソートアルゴリズムを使う?:Fluentd、Memcached、IoT、ドローン、機械学習、映像解析――ソフトとハードを隔てる壁が壊れつつある今、ITエンジニアは現実的に何ができるようになるの

    全探索によるニューラルネットワーク最適化の実験 - kivantium活動日記
  • Chainerで学ぶLSTM - kivantium活動日記

    このブログで何回も取り上げているように、ニューラルネットワークを用いた機械学習はかなりの力を発揮します。畳み込みニューラルネットワーク(convolutional neural network, CNN)は画像中で近くにあるピクセル同士の関係に注目するなど画像の特徴をうまくとらえたネットワークを構築することでかなりの成功を収めています。ノーフリーランチ定理が示唆するように万能の機械学習器は存在しないため、対象とするデータの特徴を捉えた学習器を構築することが機械学習の精度を上げる上で重要になります。 そこで今回は時系列データの解析に向いた回帰結合ニューラルネットワーク(recurrent neural network, RNN)の精度を上げるのに重要なLSTMを取り上げます。 この記事では誤差逆伝搬などのニューラルネットワークの基知識は説明しません。誤差逆伝搬についてはPRMLの5章やNe

    Chainerで学ぶLSTM - kivantium活動日記
  • ソートアルゴリズム高速化への道 - kivantium活動日記

    先日、アルゴリズムの授業でソートのアルゴリズムをいくつか習いました。ソートアルゴリズムの名前と原理くらいは聞いたことがありましたが、実装したことはなかったのでいい機会だと思い実装してみることにしてみました。ただ実装するだけでは面白くないので高速化の限界に挑戦してみたいと思います。 計測用プログラム 今回の計測では、ランダム値が入った配列のソートを100回行い、平均時間を各アルゴリズムに競わせるというシンプルなルールにしました。プログラムは以下の通りです。 C++11で入ったメルセンヌ・ツイスタなどの機能を使っているので、ビルド時には-std=c++11を指定する必要があります。 実験に使用したパソコンのCPUはCore i3-3227U@1.90GHz、コンパイラはgcc version 4.8.4で最適化オプションには-O3を指定しました。 #include <iostream> #in

    ソートアルゴリズム高速化への道 - kivantium活動日記
  • TensorFlowでアニメゆるゆりの制作会社を識別する - kivantium活動日記

    ついにガロアが死んだ年齢を超えてしまったことに気がつき、自分がまだ何も成し遂げていないことを悲しく思う今日このごろです。 さて、今日はGoogleが出した機械学習ライブラリのTensorFlowの使い方について軽く説明しつつ、ゆるゆりの制作会社の識別を行おうと思います。 TensorFlowとは TensorFlowはGoogleが11/9に公開したApache 2.0ライセンスで使える機械学習ライブラリです。Googleは様々なところでプロダクトに機械学習を活用していますが、TensorFlowは実際にGoogle内部の研究で使われているそうです(TensorFlow: Google 最新の機械学習ライブラリをオープンソース公開 - Google Developer Japan Blog)。 Googleのネームバリューは恐ろしいもので、GitHubのStar数はすでにChainerやC

    TensorFlowでアニメゆるゆりの制作会社を識別する - kivantium活動日記
  • Deep Learningの気持ちになって考えてみる - kivantium活動日記

    前回の記事で友利奈緒判定botを作ったのを紹介したところ、いろんな人から試してもらうことができました。集計したところ正解率としては90%程度を出していました。 この前集計した時の混同行列はこんな感じでした。最近投稿数が増えすぎて集計したくないです……。 しかし、第4世代のネットワークになっても「さすがにこれはないだろう」というような間違いを続けています。 .@dolicas_ 友利奈緒です(72%) pic.twitter.com/U9l93GVgIS— まほろ(稼働中) (@mitra_sun22) 2015, 9月 5 .@DEGwer3456 友利奈緒です(99%) pic.twitter.com/8Yum498g4E— まほろ(稼働中) (@mitra_sun22) September 6, 2015 Deep Learningは性能がいいということで最近もてはやされていますが、こ

    Deep Learningの気持ちになって考えてみる - kivantium活動日記
  • 友利奈緒判定botを作った - kivantium活動日記

    TVアニメCharlotteのヒロイン友利奈緒がTwitter上で異常に増殖する怪現象が起こっています。 友利奈緒検出器、川奈プロが3秒で実装しそうなやつだ— Ararik (@fimbul11) September 2, 2015 と煽られたので実装しました。(3秒ではできませんでした) 遊び方 @mitra_sun22に画像つきのリプライを飛ばせば顔と判定した部分に白枠をつけた画像と判定結果を返信します。簡単ですね! ちなみに友利奈緒と判定された画像は筆者(@kivantium)のTwitterアイコンに設定されるようになっています。 要素技術 Twitterで煽られたので、Twitterで送られた画像から顔を検出してその顔が友利奈緒かどうか判断してリプライするという仕様にしました。 ほとんど過去の記事からコピペしただけでできました。 Twitterからの画像を処理する部分: Twit

    友利奈緒判定botを作った - kivantium活動日記
  • Deep LearningのWebプラットフォームLabellioを試してみた - kivantium活動日記

    Deep Learningによる画像認識を可能にする最も簡単なWebプラットフォーム「Labellio」のリリースのお知らせという記事を見かけたので試してみました。 公式のチュートリアルに従えば簡単にDeep Learningを使った画像認識を試すことが出来ました。 まずはLabellioにアクセスします。 サインインをクリック。 アカウントはGitHubまたはGoogleアカウントと紐づけするようです。 ログインするとモデル作成画面に飛ぶのでCreate Modelをクリック。(kinmosaは過去に私が作成したモデルです) モデル名を入力してAdd dataをクリック。 今回はご注文は機械学習ですか?で使ったデータセットをzip形式で送る方法を使いました。 このようにラベル名のついたフォルダにそのキャラの顔画像を入れます。フォルダ直下に入れたファイルはフォルダ名のラベルが付くようです。

    Deep LearningのWebプラットフォームLabellioを試してみた - kivantium活動日記
  • SATをサッと解く 〜乱択アルゴリズムで遊んだ話〜 - kivantium活動日記

    ミレニアム問題と呼ばれる数学の7つの難問がある。各分野で重要かつ難しい問題が選ばれており、解決するとクレイ研究所から100万ドルの賞金を得ることができるということで有名だ。そのうちの1つポアンカレ予想は解決済みだが、残りの6つは未解決である。その中でもコンピュータ科学で非常に重要な問題が「P≠NP予想」である P≠NP予想とは コンピュータで問題を解決するときには一定の手続き(アルゴリズム)に従って問題を処理することになる。例えば数の集合の中からある特定の数字を見つけるという問題を考える。一番単純な解決方法は集合の要素を1つずつ調べていって値が求めたい数字になっているかどうかチェックすることだろう。この場合、集合がN個の数字からなるとすればおおよそNに比例する時間で求めたい数字の検索が終わることが予想できる。このようにだいたいNに比例する時間で終わるようなアルゴリズムについて、計算時間のオ

    SATをサッと解く 〜乱択アルゴリズムで遊んだ話〜 - kivantium活動日記
  • ご注文はDeep Learningですか? - kivantium活動日記

    先日Deep Learningでラブライブ!キャラを識別するという記事が話題になっていました。この記事で紹介されている SIG2D 2014を知り合いから貸してもらったので参考にしながら、ご注文は機械学習ですか?のDeep Learning版を作ってみました。 Caffeなど必要なソフトのインストール Ubuntu 14.04の場合は過去記事を参照してください。これ以外にもpython-opencvなどを使いますが、依存関係の全ては把握できていないのでエラーが出たら適宜インストールしてください。 データの準備 Deep Learningでは大量の学習データが必要になると言われているので、まずは大量のデータを用意します。参考記事では6000枚のラブライブ画像を使ったということなので対抗して12000枚以上のごちうさ画像を用意したいと思います。それだけのデータを手動で分類するとそれだけで時間が

    ご注文はDeep Learningですか? - kivantium活動日記
  • OpenCVでアニメ顔検出をやってみた - kivantium活動日記

    やったこと 顔などの特定の物体がどこにあるかを認識するときにはカスケード分類器というものをつかいます(物体検出 — opencv v2.1 documentation)。ここではOpenCVによるアニメ顔検出ならlbpcascade_animeface.xmlで公開されているアニメ顔検出器を使っています。 #include <opencv2/opencv.hpp> using namespace std; using namespace cv; void detectAndDisplay(Mat image); CascadeClassifier face_cascade; int main(void){ //カスケードのロード face_cascade.load("lbpcascade_animeface.xml"); Mat image; image = imread("face.jp

    OpenCVでアニメ顔検出をやってみた - kivantium活動日記
  • ご注文は機械学習ですか? - kivantium活動日記

    先日書いたOpenCVでアニメ顔検出をやってみた - kivantium活動日記の続編です。アニメ顔を検出するところまではうまくいったので、今度はキャラの分類をやってみようと思います。環境はUbuntu 14.10です。 ひと目で、尋常でない検出器だと見抜いたよ まずは分類に使う学習用データを用意します。投稿から半年以上経つのにまだランキング上位に残っている驚異の動画ご注文はうさぎですか? 第1羽「ひと目で、尋常でないもふもふだと見抜いたよ」 アニメ/動画 - ニコニコ動画を使います。 動画のダウンロード Ubuntuならaptで入れられるnicovideo-dlというツールを使います。 sudo apt-get install nicovideo-dl nicovideo-dl www.nicovideo.jp/watch/1397552685その後avidemuxでOP部分だけの動画を

    ご注文は機械学習ですか? - kivantium活動日記
  • 1