サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ストレッチ
kivantium.hateblo.jp
2022年8月13日~14日に東京ビッグサイトで開催されるコミックマーケット100の1日目(土)で同人誌を頒布します。 サークルはthe tenth art、場所は東ホ14bです。Webカタログはこちら。 お品書き C100で頒布するのと同じ内容で技術書典にも参加する予定なのですが、技術書典では成人を対象とした同人誌を発行できないため全年齢版とR18版を分割して発行することになりました。 私は全年齢版の『Twitter上のイラストを検索できるWebサイトの開発』と成人版の『Adversarial Exampleで作る“エロ画像”』を執筆しました。 前者はこのブログで何回か取り上げているにじさーちの解説です。まだブログでは解説していない新機能であるキャラクター自動推定についても説明しています。 後者はAdversarial Example生成技術を使って、健全画像にノイズを加えて機械学習にR
響け!ユーフォニアムに登場するキャラクターの誕生日(1/7)に合わせてイラストを描きました。 描いたイラスト 描いている途中で創作+機械学習Advent Calendarで紹介されていた添削サービスの存在を思い出したので、ついでに添削をお願いしてみました。以下その記録です。 メイキング 響け! ユーフォニアムの作中に川沿いのベンチがたびたび登場します。このベンチは宇治川の河川敷に設置されている実在のベンチをモデルにしていて、ファンの間では久美子ベンチとして親しまれています。私も実際に見に行ったことがあります。 ユーフォでよく出てくるベンチ pic.twitter.com/xYkx79N3ud— きばん卿 (@kivantium) 2018年10月7日 奏がこのベンチに座るシーンはアニメでは描写されていないと記憶しているので、その様子を描いてみようと思いました。 自分に画力が足りないことは分
この記事は創作+機械学習 Advent Calendar 2021の1日目です。 はじめに Deep Learningが画像認識コンテストで優勝して以降、機械学習をはじめとする人工知能技術の研究開発は一大ムーブメントとなり、第3次AIブームと呼ばれる状況にあります。このブログでは機械学習を二次元画像に応用した記事を何回か書いてきましたが、機械学習は画像だけではなく音声や言語など様々な分野で応用されています。このAdvent Calendarでは皆様に機械学習の創作への応用事例を紹介していただきます。どんな記事が投稿されるのか楽しみにしています。また、このAdvent Calendarを読んだ方の中に自分でも機械学習をやってみようと思ってくださる方が一人でもいらっしゃれば大変嬉しいです。 12/1時点では10名の方に参加表明をいただいています。参加者の皆様にはこの場を借りてお礼申し上げます。
このAdvent Calendarは創作(小説、漫画、アニメ、イラスト、映画、音楽、ゲーム等)と機械学習に関連した記事を投稿してもらい、優れた記事を書いた方に賞を贈呈する企画です。 2019年に@thetenthartさん主催の創作+機械学習LT会というイベントがあったのですが、コロナの影響で第2回が開催できていませんでした。そこで@thetenthartさんと@xbar_usuiさんの協力を得て、Advent Calendarという形で後継のイベントを企画させていただきました。皆様のご参加をお待ちしております。 adventar.org 告知画像(@yumu_7さんに作っていただきました) ルール 参加の意思表示はAdventarに記事公開日を登録することで行います。 登録日になったら創作(小説、漫画、アニメ、イラスト、映画、音楽、ゲーム等)と機械学習に関連する記事を公開してください(追
振り返るシリーズ第2弾として、博士課程受験記を書きます。 日本の博士課程受験 現在所属している修士課程と同じ専攻の博士課程を受験しました。この専攻では修士論文の発表が博士課程の入試を兼ねているので特に対策することはありませんでした。 これだけで終わってしまうと面白くないのでDC1への申請について書きます。 研究専念義務をはじめとして学振には悪い面がたくさんあるのですが、博士課程学生への支援制度としてはこれが一番標準的なものなのでとりあえず出しました。これから博士課程に入学する人向けの学振がDC1です。DC1への申請はM2の春に行い、M2の秋頃に結果発表があります。DC1に採用されると月額20万円の研究奨励金と毎年度150万円以内の研究費が3年間交付されます(実際に150万円交付されることはほとんどないらしいですが)。すでに博士課程に在籍している人はDC2に申請することになります。DC2も同
周りの人が大学生活を振り返る雰囲気になっていたので振り返っていこうと思います。 やはりお祈られ記事を書いて俺YOEEEするべきか— 新刊出ます (@mofmoffox) 2020年2月16日 というわけで振り返り第一弾として、大学時代に受け取ったお祈りメールを思い出していきます。 IT企業P社のアルバイト(2014年12月・B1) 高校生の頃に、高校OBだった創業者が当時僕が部長をしていた部活で講演会をしたことがあり、その中で「大学生になったら是非アルバイトに来て欲しい」と言っていたので応募しました。創業者とのコネがあるとはいえ、何も実力を示せるものがない状態で応募しても採用してくれないだろうと思って、実力を示すために書いた記事が「ご注文は機械学習ですか?」でした。 kivantium.hateblo.jp この記事が予想以上にバズったのでこれはもう受かっただろうと思って舐めた態度で面接に
留学に行くついでにシリコンバレーの観光をしたのでその記録を残しておきます。 青が1日目、緑が2日目、黄色が3日目の行き先です。 1日目(サンフランシスコ) シリコンバレー観光といいながら1日目はサンフランシスコに行きました。この記事によると近年はシリコンバレーを離れてサンフランシスコに拠点を置くスタートアップが増えているそうです。 Twitter本社Googleサンフランシスコ BARTの券売機 空港からサンフランシスコへの移動はBARTという鉄道を利用したのですが、この券売機の仕様が分かりにくかったので記録しておきます。 インターフェース 切符を買うためにはまず券売機に貼られているシールを見て目的地までの切符料金を確認します。 次にその金額の切符を買うのですが、金額指定の方法が分かりにくかったです。例えば10ドル紙幣を持っているときに5.25ドルの切符を買いたいとすると、10ドル入れた後
ライブラリの開発をするときに、現在のバージョンと開発中のバージョンの性能比較をすることがあります。同じ名前のライブラリが1つの環境に複数存在すると面倒なことになるのでDockerを使って環境を分けることにしました。そのときに使ったコマンドについて記録します。 Dockerの仕組みやインストール方法については触れません。 Ubuntu 16.04のコンテナのダウンロード Ubuntu 16.04を使うには docker pull ubuntu:16.04 とします。 Dockerイメージの実行 Dockerイメージを入手したら docker run -it ubuntu:16.04 /bin/bash を実行するとコンテナ上でシェルが実行されます。オプションの意味は以下の通りです。 -i: 標準入力を開いたままにする -t: 擬似ttyに接続する。 コンテナの実行中にCtrl+PとCtrl+
C/C++でプログラムを書いているときに遭遇する厄介なバグの一つがメモリリークです。 今回はメモリリークを検出するのに使えるツールの使い方について書きます。 AddressSanitizer コンパイルオプションをつけるだけで使えて出力も見やすいのでおすすめです。 AddressSanitizerはGCC 4.8以降かLLVM 3.1以降で使うことができます。 コンパイル時にオプションをつけるだけでメモリリークを検出してくれます。(若干実行時間が長くなります) 以下のメモリリークのあるプログラム leak.cpp を例に使い方を説明します。 int main() { int *a = new int[10]; } newで作った動的配列をdeleteしていないのでメモリリークになります。 g++ -fsanitize=address -fno-omit-frame-pointer -g l
この記事は2017年12月15日に https://kivantium.net/deep-for-chem/ に投稿したものです。 情報が古くなっていますが、まだ参照されているようなので再掲します。 この記事はDeep Learningやっていき Advent Calendar 2017の15日目です。 Deep Learningの威力が有名になったのは画像認識コンテストでの圧勝がきっかけでしたが、今ではDeep Learningはあらゆる分野に応用され始めています。NIPS2017でもMachine Learning for Molecules and Materialsが開催されたように、物質化学における機械学習の存在感が高まりつつあります。この記事ではその一例として化学の研究にDeep Learningが使われている例を紹介していきます。 化学物質の研究に機械学習が使われる主なパター
以前@berobero11さんに「StanとRでベイズ統計モデリング」をプレゼントしていただき、本を読んだのですが解析したいデータがなかったため勉強した結果を活かすことができずにいました。 しかし今日Twitterを見ていたら 長時間労働は,知的好奇心を枯らすのか。 pic.twitter.com/NcuaLAgzpy— 舞田敏彦 (@tmaita77) 2017年11月13日 労働時間と知的好奇心には,国レベルでは非常に強い負の相関があるが,個人レベルでは逆に正の相関がある https://t.co/N8Z00ljFfB— Haruhiko Okumura (@h_okumura) 2017年11月15日 というまさに階層ベイズモデルを用いた解析にぴったりのテーマが流れてきたのでStanの練習として解析を行ってみました。 モデリング まずは奥村先生のPIAACデータ解析を読んでください。
2014年の記事で何回かポアソン画像合成をやりましたが、どれもうまくいきませんでした。 kivantium.hateblo.jp kivantium.hateblo.jp 授業の課題でポアソン画像合成を書いたので供養としてソースコードを上げておきます。 前回との差分は勾配ベースの画像編集:Poisson Image Editingで「厳密な実装」とされている方の実装に書き換えたことと、画素アクセスをatから高速だと言われているポインタに差し換えたことです。(自分の環境で速度を測った結果、atとポインタで分かるほどの差はありませんでしたが) 入力画像から顔を認識して、その上に別の顔を合成するサンプルです。 #include <opencv2/opencv.hpp> #include <string> #include <sstream> #include <cstdio> #include
以前の記事でMP4をアニメーションGIFに変換する方法を紹介しました。 kivantium.hateblo.jp その後Twitterの機能変更でMP4の動画がそのままアップロードできるようになったのですが、アップロードに失敗することが非常に多かったです。 Twitterの公式ドキュメント(How to share and watch videos on Twitter)には モバイルアプリではMP4とMOVの動画形式をサポートしています。 ブラウザではMP4(H264形式、AACオーディオ)をサポートしています。アップロードできる動画のサイズは最大512MBです。ただし長さは2分20秒間以下にしてください。 最小解像度: 32 x 32 最大解像度: 1920 x 1200(および1200 x 1900) 縦横比: 1:2.39~2.39:1の範囲(両方の値を含む) 最大フレームレート:
授業で「Deep Learningを使って何か作る」という課題を与えられました。チーム開発なのですが、知らないうちにテーマがツイートの自動生成に決まっていたので実装をやりました。発表内容は以下のスライドを見てください。 以下、実装の詳細を説明します。 使ったコードはkivantium/rnn-twitter · GitHubに置いてあります。 github.com char-rnn (Keras) char-rnnはKarpathyがThe Unreasonable Effectiveness of Recurrent Neural Networksで紹介したことで有名になり、各種フレームワークに移植されているLSTMの有名なモデルです。モデルの説明はKarpathyの記事を読んでください。 Kerasを使いたかったのでkeras/lstm_text_generation.py at ma
2016年最後の日なので今年読んだ本を振り返ってみたいと思います。 まんがタイムKRコミックス 今年もたくさんのきららコミックスを読みました。 NEW GAME! NEW GAME! (4) (まんがタイムKRコミックス) 作者: 得能正太郎出版社/メーカー: 芳文社発売日: 2016/07/27メディア: コミックこの商品を含むブログ (11件) を見る今年発売された4巻のコンペの話や5巻の進路に悩む話など、挫折しながらも前に進んでいく青葉ちゃんの姿がとてもとてもよかった。 きんいろモザイク きんいろモザイク (7) (まんがタイムKRコミックス) 作者: 原悠衣出版社/メーカー: 芳文社発売日: 2016/09/27メディア: コミックこの商品を含むブログ (3件) を見る忍たちも高校三年生になり修学旅行の話が中心でした。言うまでもなくよかった。 がっこうぐらし! がっこうぐらし! 1
この記事はkivantium Advent Calendarの18日目です。 CPUを設計する際に重要な要素の一つが命令セットアーキテクチャ (ISA) です。 これから設計する簡単なCPUのISAとして、分かりやすく参考文献も多いMIPSを採用することにしました。 MIPS ISA の詳細は https://www.cs.cornell.edu/courses/cs3410/2008fa/mips_vol2.pdf が詳しいです。 CPUの構成 昨日の記事で見たように歴史上様々なCPUが存在しており、CPUはこういう形だと言い切るのは難しいのですが、現在生き残っている多くのCPUはレジスタマシンになっています。 レジスタマシンを構成する主な要素は プログラムカウンタ (PC) 現在行っている命令の番号を保持します 命令メモリ CPUが実行する命令を保持します 汎用レジスタ 計算する値や計
この記事はkivantium Advent Calendarの19日目です。 前回は最初のCPUの設計に使う命令セットを紹介しました。 今回はこの命令を使っていろいろなプログラムを書いてみます。 SPIM ここではMIPSのシミュレータとして有名なSPIM (MIPSを逆から読んだ名前) を使うことにします。 GUIがついたQtSPIMをダウンロード・インストールします。 QtSPIMはアセンブリで書いたテキストファイルを読み込んで実行します。 実行したいファイルを保存して、File > Reinitialize and Load Fileとすることでファイルが読み込まれます。 再生ボタンのようなRun/Continueを押すと実行されます。 最初のプログラム まずはHello, World代わりに数字の1を表示することにします。 .text # アセンブリ命令がここから始まることを示す
この記事はまんがタイムきらら Advent Calendar 2016、きんいろモザイク Advent Calendar 2016、ごちうさ Advent Calendar 2016の14日目です。(さすがに欲張りすぎた) 9月にきんいろモザイクの聖地であるイギリスと、ご注文はうさぎですか?の聖地とされるフランスに行ってきたので、そのときの写真と今後行く人向けに役立つかもしれない情報を書いていこうと思います。行った場所は以下の地図に書いてあります。(ルートはGoogleマップの制約で全て徒歩になっていますがもちろん鉄道や車を併用しました) また、旅行中のツイートは togetter.com にまとめてあるので、より詳しい記録を見たい人は参照してください。 きんいろモザイク聖地巡礼 きんいろモザイクの聖地巡礼をするために行くべき場所は Heathrow空港(1期1話で忍が使った空港) Pad
この記事はkivantium Advent Calendarの3日目です。 昨日はNANDゲートから任意のゲートを作れることを確認しました。 ここからは何回かに分けて四則演算などの基本的な計算を行う回路の実現方法を書いていきます。 四則演算は組み合わせ回路として書けるので、NANDであらゆるゲートを作れる以上実現できることは明らかなのですが、使用するトランジスタの数を減らしたり計算を高速にしたりするためにいろいろな方法が考えられています。 2進数による正の整数の表現 デジタル回路では電圧のH/Lに対応した1/0の2値で全ての情報を表します。2値で数字を表すために2進数を使います。 を0または1として、のように並べた数字がという値を表すように取り決めるのが2進数です。 2進数での桁のことをbit (BInary digiT)と呼び、2進数で8桁の数字を「8bitの数」のようにいいます。 4b
この記事はkivantium Advent Calendarの2日目です。 昨日はトランジスタを使ってNANDゲートを作る方法を解説しました。 今日はNANDゲートを使っていろんなゲートを作っていきます。 基本的なゲート ゲートにはNANDゲートの他にも何種類もあります。 よく使う有名なゲートには記号があります。NANDゲートの記号は です。 NANDの真理値表を再掲します。 A B Q 0 0 1 0 1 1 1 0 1 1 1 0 NOTゲート NOTゲートは入力が1つ、出力が1つで、入力と出力の値が逆になるようなゲートです。NOTゲートの記号は です。 真理値表は、 A Q 0 1 1 0 です。 NOTゲートはNANDゲートを のようにつなぐと作ることができます。 ANDゲート ANDゲートは入力が2つ、出力が1つで、2本の入力が両方とも1のときだけ1を出力するようなゲートです。A
この記事はkivantium Advent Calendarの1日目です。 このAdvent Calendarについて トランプ大統領の誕生により、核戦争で文明が崩壊するリスクが高まっています(脳内設定)。また、巷では空前の異世界転生ブームが巻き起こっているため、いつ異世界に飛ばされてもおかしくありません。 そのような事態に備えて一人で文明を再構築できる知識をつけるために我々は日々勉強に励んでいるわけですが、現代文明を作るためにはコンピュータの知識が欠かせません。 そこで、このAdvent Calendarではコンピュータの中核となるCPU作成に必要そうなハードウェアの知識についてちまちま書いていきます。 毎日更新できるとは思っていませんし、12/25で終わるとも思っていません。 スタート地点 さて、CPUを作成するにあたって、文明崩壊後ないし転生先の技術レベルを設定しないといけないわけで
はてな記法には数式を表示するためのtex記法が用意されています。 はてなブログでの数式表示はGoogle Charts APIを使っているようでそこそこ遅いです。 はてなブログの数式レンダリングが遅いとTwitterに嘆いていたところ、KaTeXという高速な数式レンダリングライブラリを教えてもらったので、はてなブログで動かせるようにしました。 注意! はてなブログではPro契約していない人はキーワードリンクが設定されます。mなどの文字はキーワードと認識されてしまい、KaTeXが正しくレンダリングできないことが分かりました。キーワードと認識されない文字列しかない数式なら以下の方法でできるようですが、そうではない場合は以下の方法で動きません。つまり、この方法は使い物になりません。 設定 「設定」→「詳細設定」→「headに要素を追加」に <link rel="stylesheet" href=
帰無仮説のもとでp値の分布が一様分布になるらしいのですが、納得できるちゃんとした証明が検索しても出てこなかったので書いておきます。 p値とは何かとか、帰無仮説とは何かみたいな解説は省略します。 証明 を観測値の帰無仮説の分布、をの累積分布関数 をp値の分布、をの累積分布関数とする。 は連続分布で、が逆関数を持つものと仮定する。 (注: 分布の累積分布関数はを満たすような関数) 観測値が帰無仮説に従うとき、が上の一様分布であることを示す。 上の一様分布の累積分布関数は上でという値を取ることと、p値は上の値しか取らないことから、であることを示せばが上の一様分布に従うことが分かる。 観測値がのときのp値をとするとp値の定義より が成り立つ。 (が連続分布と仮定しているので) また、が単調増加することから、 が成り立つ。 以上より、 したがって、であることが分かったのでp値が上の一様分布であること
先日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.
自動テストはエンジニアの必須スキル!という話を最近よく聞くのですが、テストをやったことがなかったのでTravis CIで試してみました。 Travis CIとは Travis CIは自動テスト実行サービスで、GitHubと連携してpushした際に自動でテストを行ってくれるところが特徴です。 GitHubと連携できる継続的インテグレーションツール「Travis CI」入門 - さくらのナレッジに従って登録等を行いました。 設定ファイルの記述 Travis CIの設定はリポジトリのルートディレクトリに.travis.ymlというファイルを置くことで行います。 Travis CIはテストのたびに仮想マシンを立ち上げてその中でテストが走るのですが、.travis.ymlにはマシンの環境設定に関する事項と、実際にテストする内容をステップごとに記述していきます。 installステップ: テストに必要
前回の記事でSystemVerilogをちょこっと書いたので、今度はSystemVerilogの文法について細かく勉強しようと思います。 あくまで自分が勉強するためのメモなので、お気づきの点があったら指摘してもらえると助かります。 理解したところから記述を足していくので永遠に未完成です。 SystemVerilogについて SystemVerilogはVerilog HDLをベースに記法や検証機能などを追加して作られたハードウェア記述言語です。 最新の規格であるIEEE 1800-2012はIEEE Standard Association - IEEE Get Programからダウンロードできます。 最初の例 前回の記事で書いたコード例を元に文法について書いていきます。 コードを再掲しておきます。 module decoder( input [2:0] sw, output reg [
SystemVerilogの勉強のためにVivadoが使えるFPGAボードが欲しかったので、DigilentのBasys 3を購入しました。ちなみにAcademic料金で購入するとかなり安くなるので、大学等に所属している人はAcademic登録することをおすすめします。 store.digilentinc.com Ubuntu 14.04上で環境構築した時のメモを残しておきます。 ちなみにボードはこんな感じです。 Vivadoのインストール Vivado Design SuiteからVivadoのインストーラを落とします。 WebPACKを選択してあとはデフォルトの設定のままインストールすれば大丈夫でした。 インストール先は標準から変更したほうがいいかもしれない(後述)ですが、ここではデフォルトの/opt/Xilinxにしました。 起動を簡単にするために~/.bashrcに alias v
コンピュータ上で実数を表現する際には浮動小数点数を使うのですが、浮動小数点数の計算では誤差が発生します。 簡単な例を見てみます。 #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などのより精度の高い型を使って計算精度を上げることですが、どうしても限界はあります。 他にも問題ごとにテクニックは存在しますが、誤差を完全に無くすことはできません。 正確な計算のためには誤
OpenCVのオブジェクト検出器作成方法についての解説です。 学習データの作成 まず最初にオブジェクト検出器の学習に使う教師データを用意する必要があります。そのためにまずGUIでオブジェクトの位置を指定するGUIツールを作りました。 PythonのOpenCVを使います。 #!/usr/bin/env python #! -*- coding: utf-8 -*- import cv2 import numpy as np import sys drawing = False sx, sy = 0, 0 gx, gy = 0, 0 rectangles = [] ok = False def draw_circle(event,x,y,flags,param): global sx, sy, gx, gy, drawing if event == cv2.EVENT_LBUTTONDOWN
次のページ
このページを最初にブックマークしてみませんか?
『kivantium活動日記』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く