kivantium活動日記

プログラムを使っていろいろやります

2017年7月 第4週

今週知ったこと 時系列解析の手法 DTW 時系列は https://t.co/gRQ0yX6z2L このサーベイが便利だった.結論としては,「いろいろ提案されてるけど,だいたい DTW/RotF からたいして向上しないし,一番強い奴はアンサンブル.」— Takanori MAEHARA (@tmaehara)…

TwitterにMP4動画をアップロードするにはyuv420pを使う必要がある(らしい)

以前の記事でMP4をアニメーションGIFに変換する方法を紹介しました。 kivantium.hateblo.jpその後Twitterの機能変更でMP4の動画がそのままアップロードできるようになったのですが、アップロードに失敗することが非常に多かったです。Twitterの公式ドキュメ…

2017年7月 第2&3週

先週は引っ越しなどで忙しかったので2週間分まとめての更新です。 今週知った価値あるWebサイト Black Box Optimization Competition Black-Box Optimization Competition start [COmparing Continuous Optimisers: COCO] ブラックボックス最適化のコンペ。…

2017年7月 第1週

7月第1週なのか6月第5週なのか…… 今週知ったもの ティースバンク 有限会社スリーブラケッツが行っている歯の保存事業。抜いた親知らずなどを冷凍保存しておき、将来の移植に備えるもの。20年の保存で13万円とのこと。 声優統計コーパス プロの女性声優3名が…

2017年6月第4週

今週知ったもの Green 500 - June 2017 Green500 List - June 2017 | TOP500 Supercomputer Sites最新のGreen 500のtop 10のうち6つを日本のスパコンが占めていた。Graph 500では京が世界一であった。 メモリスタ メモリスタ - Wikipedia通過した電荷を記憶…

2017年6月 第3週

今週知ったこと Seaborn 簡単に美しいグラフ描画ができるPythonライブラリSeaborn入門 - MyEnigma matplotlibの描画をいい感じにしてくれるらしい。 ORWiki ORWiki 社団法人 日本オペレーションズ・リサーチ学会が運営しているWiki。事例編などが参考になり…

2017年6月 第2週

今週知ったこと Codon usage bias Codon usage bias - WikipediaDNAからタンパク質を転写する際、塩基の3つ組が一つのアミノ酸を表しているのだが、同じアミノ酸を表す3つ組が複数存在する場合がある(同義コドン)。同義コドンの間には使われる頻度の差があ…

2017年6月第1週

今週学んだこと Cholesky分解のRank-one update すでにCholesky分解が求まっている行列に対し、という形の更新を行う場合、更新後の行列に対するCholesky分解は通常よりも速く求めることができる(Wikipedia)。EigenではrankUpdateという関数で実装されている…

2017年5月 第4週

印象的だったニュース ディープラーニングでの自動彩色 ディープラーニングを使った自動色塗り機能、お絵かきアプリ「アイビスペイント」に搭載 -INTERNET Watch AIが彩色した映像、NHKが放送 昭和の白黒番組をカラーに - ITmedia NEWS お絵描きコミュニケー…

2017年5月 第3週

新しく知ったこと 「ずんだホライずん」のクラウドファンディング 東北ずん子アニメ「ずんだホライずん」制作プロジェクト | クラウド出版 クラウドファンディングでアニメ制作の予算を集めているらしい。3万円出すと14000枚の原画と中割り絵がもらえるとい…

2017年5月 第2週

読んでいるブログの今週のまとめという企画が面白そうなので自分もやってみることにしました。 学ぶって言うのはまねぶって言うじゃん? みんな最初は誰かの真似、おんなしおんなし。(井口 祐未) 例によって飽きたらやめます。 zkro.hateblo.jp 新しく知っ…

Ubuntu 16.04でADS-1500Wを使う

増え続ける紙資料を電子化して保管するためにスキャナーを買いました。購入時には大きさと価格を考慮して以下の3つを検討しましたが、無線LAN機能がついていることとLinux用ドライバーが公式で配布されていることを理由にADS-1500Wを買いました。 BROTHER ド…

画像処理で大腸菌のコロニー数を数えたかった話 その2

kivantium.hateblo.jp の続編です。前回は先行研究を一切調べずに適当にやったので今回は少し先行研究調査をして前回よりはまともな方法を実装したいと思います。 先行研究 Google検索したところ 細胞画像の分析を専門にするグループがカーネギーメロン大学…

RNNによるツイートの自動生成

授業で「Deep Learningを使って何か作る」という課題を与えられました。チーム開発なのですが、知らないうちにテーマがツイートの自動生成に決まっていたので実装をやりました。発表内容は以下のスライドを見てください。RNNによるツイートの自動生成 / kiva…

AWSのGPUで機械学習した話(Torch編)

TL; DR AWSは初期状態でGPUインスタンスを立てられない設定になっていることがあるから気をつけましょう 学校で「ディープラーニングを使って何かを作れ」という課題が出たのでGenerative Adversarial Text-to-Image Synthesisを動かそうと思ったのですが、…

2016年に読んだ本

2016年最後の日なので今年読んだ本を振り返ってみたいと思います。 まんがタイムKRコミックス 今年もたくさんのきららコミックスを読みました。 NEW GAME! NEW GAME! (4) (まんがタイムKRコミックス)作者: 得能正太郎出版社/メーカー: 芳文社発売日: 2016/07…

アセンブリ言語 その2

この記事はkivantium Advent Calendarの19日目です。前回は最初のCPUの設計に使う命令セットを紹介しました。 今回はこの命令を使っていろいろなプログラムを書いてみます。 SPIM ここではMIPSのシミュレータとして有名なSPIM (MIPSを逆から読んだ名前) を使…

アセンブリ言語 その1

この記事はkivantium Advent Calendarの18日目です。 CPUを設計する際に重要な要素の一つが命令セットアーキテクチャ (ISA) です。 これから設計する簡単なCPUのISAとして、分かりやすく参考文献も多いMIPSを採用することにしました。 MIPS ISA の詳細は htt…

いろいろなCPU

この記事はkivantium Advent Calendarの17日目の記事です。昨日まででCPUを作る部品の解説は一通り終わったのでついにCPUの作成に入る準備ができました。 実際に作成に入る前に過去の偉人に学ぶべく独断と偏見で選んだ歴史上のCPUたちを一言ずつ紹介していき…

浮動小数点数の除算

この記事はkivantium Advent Calendarの16日目です。昨日は浮動小数点数の加減算を扱いました。 今日は演算器シリーズの最終回として浮動小数点数の除算を取り上げます。 基本原理 浮動小数点数の演算を行うには符号部・指数部・仮数部を決める必要がありま…

浮動小数点数の加減算

この記事はkivantium Advent Calendarの15日目です。このページは移動しました。https://kivantium.net/cpu-faddを見てください。

バレルシフタ

この記事はkivantium Advent Calendarの14日目です。昨日は浮動小数点数の乗算をやりました。 今日は浮動小数点数の加減算をするのに必要な部品であるバレルシフタを紹介します。 シフトの使い道 シフト演算は高速なのでビット演算テクニックとしてよく使わ…

きんモザ・ごちうさ聖地巡礼記

この記事はまんがタイムきらら Advent Calendar 2016、きんいろモザイク Advent Calendar 2016、ごちうさ Advent Calendar 2016の14日目です。(さすがに欲張りすぎた)9月にきんいろモザイクの聖地であるイギリスと、ご注文はうさぎですか?の聖地とされる…

浮動小数点数の乗算

この記事はkivantium Advent Calendarの13日目です。昨日は浮動小数点数のフォーマットについて説明しました。 今日は浮動小数点数の乗算をやります。 仕組み 浮動小数点数は仮数と指数で表されるので 指数の和を取る 仮数の積を取る 仮数を丸めてフォーマッ…

浮動小数点数

この記事はkivantium Advent Calendarの12日目です。昨日までで整数の四則演算のやり方を紹介しました。 今日からは浮動小数点数の使い方を紹介します。 IEEE-754 浮動小数点数の表し方はコンピュータの歴史の中で何種類かありましたが、現在主流となってい…

除算器 その2

この記事はkivantium Advent Calendarの11日目です。昨日は回復法を用いた除算器の設計を説明しました。回復法は符号付き整数を扱えないという欠点がありました。今日はこれを克服する非回復法を説明します。 非回復法(引き放し法) 回復法では引き算の結果…

除算器 その1

この記事はkivantium Advent Calendarの10日目です昨日までで四則演算のうち3つが揃ったので今日からは最難関の割り算をやります 回復法(引き戻し法) 話を簡単にするため、まずは符号なし整数の割り算を考えます。 割り算の場合も基本の考え方は筆算です。…

乗算器 その3

この記事はkivantium Advent Calendarの9日目です。昨日はWallaceツリーを用いた乗算器の構成を紹介しました。 昨日までの方法ではbit数と同じ数の部分積の和を取る必要がありましたが、今日は部分積を減らすことで高速化を目指す方法を紹介します。 Radix-4…

乗算器 その2

この記事はkivantium Advent Calendarの8日目です。昨日は符号なし整数掛け算の実現方法として単純な2つの回路を考えてそれらが実用的でないことを確認し、また、符号付き整数の掛け算を行う方法としてBaugh-Wooleyアルゴリズムを紹介しました。 今日は乗算…

乗算器 その1

この記事はkivantium Advent Calendarの7日目です。昨日は乗算器の準備のために順序回路の構成要素であるラッチとフリップフロップについて簡単に触れ、シフトレジスタを導入しました。今日は掛け算を行う回路を作っていこうと思います。 単純な符号なし乗算…

ラッチとフリップフロップ

この記事はkivantium Advent Calendarの6日目です。昨日までは入力だけで出力が確定する組み合わせ回路を扱っていました。 しかし、掛け算のような複雑な演算を効率的に行うには前の計算結果を保存しておいて、何度か繰り返し計算を行うような処理が必要にな…

減算器

この記事はkivantium Advent Calendarの5日目です。昨日までで足し算ができるようになったので今度は引き算を考えます。 引き算はという関係から負の数の足し算として考えれば加算器をそのまま流用することができそうです。 しかし、2進数での負の数をどう定…

加算器 その2

この記事はkivantium Advent Calendarの4日目です。昨日は半加算器・全加算器・リップルキャリーアダーを紹介しました。 リップルキャリーアダーはゲートがたくさん直列に並んでいるため遅いです。 そこで今回は高速な加算器を実装する話です。 キャリールッ…

加算器 その1

この記事はkivantium Advent Calendarの3日目です。昨日はNANDゲートから任意のゲートを作れることを確認しました。 ここからは何回かに分けて四則演算などの基本的な計算を行う回路の実現方法を書いていきます。四則演算は組み合わせ回路として書けるので、…

NANDがあればなんでもできる その2

この記事はkivantium Advent Calendarの2日目です。昨日はトランジスタを使ってNANDゲートを作る方法を解説しました。 今日はNANDゲートを使っていろんなゲートを作っていきます。 基本的なゲート ゲートにはNANDゲートの他にも何種類もあります。よく使う有…

NANDがあればなんでもできる その1

この記事はkivantium Advent Calendarの1日目です。 このAdvent Calendarについて トランプ大統領の誕生により、核戦争で文明が崩壊するリスクが高まっています(脳内設定)。また、巷では空前の異世界転生ブームが巻き起こっているため、いつ異世界に飛ばさ…

はてなブログでKaTeXを使う

はてな記法には数式を表示するためのtex記法が用意されています。 はてなブログでの数式表示はGoogle Charts APIを使っているようでそこそこ遅いです。 はてなブログの数式レンダリングが遅いとTwitterに嘆いていたところ、KaTeXという高速な数式レンダリン…

帰無仮説のもとでp値の分布が一様分布になることの証明

帰無仮説のもとでp値の分布が一様分布になるらしいのですが、納得できるちゃんとした証明が検索しても出てこなかったので書いておきます。p値とは何かとか、帰無仮説とは何かみたいな解説は省略します。 証明 を観測値の帰無仮説の分布、をの累積分布関数 を…

PythonからGNU Socialを使う

先日Twitterに障害が発生した際に「Twitterが落ちてつぶやけない」というつぶやきができなくて非常に苦しい思いをしました。 また、Twitter社の収益が怪しく買収交渉も失敗したという噂も流れています。 なんにせよTwitterがなくてもつぶやきを続行できる代…

Travis CIによるC言語プログラムの自動テスト

自動テストはエンジニアの必須スキル!という話を最近よく聞くのですが、テストをやったことがなかったのでTravis CIで試してみました。 Travis CIとは Travis CIは自動テスト実行サービスで、GitHubと連携してpushした際に自動でテストを行ってくれるところ…

SystemVerilog文法メモ

前回の記事でSystemVerilogをちょこっと書いたので、今度はSystemVerilogの文法について細かく勉強しようと思います。 あくまで自分が勉強するためのメモなので、お気づきの点があったら指摘してもらえると助かります。 理解したところから記述を足していく…

FPGAボードのBasys 3を買った

SystemVerilogの勉強のためにVivadoが使えるFPGAボードが欲しかったので、DigilentのBasys 3を購入しました。ちなみにAcademic料金で購入するとかなり安くなるので、大学等に所属している人はAcademic登録することをおすすめします。 store.digilentinc.comU…

精度保証付き数値計算(その1)

コンピュータ上で実数を表現する際には浮動小数点数を使うのですが、浮動小数点数の計算では誤差が発生します。簡単な例を見てみます。 #include <cstdio> int main(void) { float a = 0.0; for(int i=0; i<10000; ++i) a += 0.01; printf("%.10f\n", a); } という0.</cstdio>…

COBRApyを使ったFlux Balance Analysis

生物の代謝を数学的にシミュレーションする手法の一つにFlux balance analysis(FBA, 日本語だと「代謝流束均衡解析」)というものがあります。一般的な代謝のシミュレーションでは速度定数を実験的に求めてから微分方程式を解く必要があり、実験の手間も計…

最近読んだ本とか

大学の実験で心が折れそうだったので最近かなりのペースでマンガやラノベを読んでいました。というわけでいくつか紹介していきます。 WORLD END ECONOMiCA 「できるかできないかじゃない」「うまくいくまでやるんだよ」冬木糸一さんのレビュー(最高の効率で…

画像処理で大腸菌のコロニー数を数えたかった話

生物の実験でシャーレに生えた大腸菌のコロニーの数を数えるという作業をしたのですが、こんなものは人間の仕事ではないので自動化したいと思いました。 OpenCVのインストール OpenCV 3.0で入った関数を使いたいので記事を書いた時点で最新版のOpenCV 3.1を…

顔認識を失敗させる技術を失敗させるハッカソンに参加した

去年の8月に、国立情報学研究所(NII)が顔認識ができなくなるメガネを開発したという記事が話題になりました。 nlab.itmedia.co.jpそれに対してHaar-like, LBP特徴による方法が前提っぽいから、HOG特徴量で輪郭取るこの前の方法なら勝てそう— 川奈 清 (@kiv…

ボトムアップ型自動微分の実験

Deep Learningの関係で自動微分が脚光を浴びつつあるような気がしますが、自動微分を解説したページは少なくまだまだマイナーな分野だと思います。先日ようやく「アルゴリズムの自動微分と応用」を一通り眺めたのでいろいろ実験して遊んでいます。今日は自動…

全探索によるニューラルネットワーク最適化の実験

先月に[1602.02830] Binarized Neural Networks: Training Deep Neural Networks with Weights and Activations Constrained to +1 or -1というニューラルネットワークを二値化して計算する論文が発表されました。(訂正:2つの論文があるように記述していま…

Androidの画面をPCに表示する方法

声優ハッカソンではAndroidアプリを開発してプレゼンを行いました。自分たちのチームはタブレットで実際に動かしたアプリを審査員に見せたのですがタブレットの画面は遠くの人に見せるには小さすぎるのでどうしても分かりにくくなってしまいました。他のチー…