The Qiita Advent Calendar 2020 is supported by the following companies, organizations, and services.
The Qiita Advent Calendar 2020 is supported by the following companies, organizations, and services.
あらすじ クラスでこんな会話をよく耳にします。 「〇〇の新曲リリースされたらしいよ」 「まじ?MusicFMにあるかな」 「通信制限やばいからwifiつないでダウンロードしとこ」 MusicFMやmangabankなどの海賊版サービスは、もはや中高生の生活に必要不可欠です。ネット上ではここまで著作物がルーズなのかと高校生ながら危機感を感じました。僕が大好きなMr.childrenやスピッツの楽曲もダダ漏れ。 よし、MusicFMを潰そう。 動作環境 iPhone8 ios12.1 App名: Music HD デベロッパ: Xu Yingqi Ubuntu 18.04.3 iPhoneの通信をパケットキャプチャ iPhoneの通信をPCでキャプチャするには、iPhoneネットワークデバイスを仮想ネットワークインターフェースとしてPCに設定します。 rvictlコマンドをlinuxで実装して
紹介論文 Are We Really Making Much Progress? A Worrying Analysis of Recent Neural Recommendation Approaches (RecSys 2019) 日本語では「本当にそんなに進捗出てるの? -或いは最近のNN推薦手法に対する警鐘-」という感じだろうか。 元論文はこちら https://arxiv.org/pdf/1907.06902.pdf 概要 DNNが登場してから推薦分野でもDeepXXな手法が増えている 新手法の登場頻度が高いため、代表的なタスクであるtopN推薦に対してすらSOTAが何か追えなくなっている そこでトップ会議(KDD, SIGIR, WWW, RecSys)のDNN関連研究18本を追試した 18本のうち、現実的な努力を行った上で再現できたのが7本 (RecSysでの発表によると、)
トロピカル半環と呼ばれる代数構造上のトロピカル行列を利用すると動的計画法を使ってグラフの最短経路の距離を計算するという問題が単純な行列積で解けてしまうらしい。そんな噂12を聞きつけて我々はその謎を解き明かすべく南国(トロピカル)の奥地へと向かった。 トロピカルな世界に行くためにはまずは代数を知る必要がある。要するに群・環・体の話だ。しかしこの記事の目的は代数学入門ではないので詳しい話は他の記事3に譲るとし、さっそく半環という概念を導入する。それは 半環は以下の性質を満たす二つの二項演算、即ち加法(和)"$+$" と乗法(積)"$\cdot$" とを備えた集合$R$を言う $(R, +)$ は単位元 $0$ を持つ可換モノイドを成す: $(a + b) + c = a + (b + c)$ $0 + a = a + 0 = a$ $a + b = b + a$ $(R, \cdot)$ は単
これはとある回顧録 何度も諦めかけましたが、数年の歳月を経て遂に岡田を切る技術が一旦の完成へと至りました。その技術を巡る奮闘の歴史と成果について、ここに記録を残していきたいと思います。 画像時代 まずは「切る」という動作が何を指すかを明確にしておきます。 厳密な定義というよりは、切った感を得るために必要そうなふるまいとして定義します。 平面上のある領域が、任意の直線を境界として分割されること 分割された領域は物理法則に準じてふるまうこと 要するに気持ちよく岡田を切ることができれば目標は無事達成です。 物理エンジン 切った感を高めるためにはやはり「物理法則」に準じたふるまいが欲しくなります。つまりブラウザ上で動く物理エンジンが必要です。 世の中にはフルスクラッチで物理エンジンを作れる人間と作れない人間が居ると思われますが、残念ながら私は後者でした。勝ち目の薄い勝負は避け、素直に巨人の方にすが
先日、同僚と「世の中のエンジニアはターミナルにどんなalias設定をしているんだろう?」という談義になったので、GitHub上の1000リポジトリのコードから調査してみました。 2019/04/10 コメントを元に微修正しました。コメントくださった方々、ありがとうございます。 2019/04/11 こんなのも書いてみました。 よく使われているvimrcの設定ランキング 2019/04/15 プラグイン版も書きました。よく使われているvimのプラグイン top20 aliasとは wikipediaより UNIXなどにおいてコマンドを別名で登録したもの。別名を登録するコマンド名。 長いコマンドやいつも利用するオプションを毎回入力するのは手間ですよね? ターミナルの設定ファイルにaliasを記述することで、別名として定義することが可能というわけです。 調査方法 GitHub APIを利用 do
最適化や凸解析の本のわりと序盤に登場するトピックに 劣微分・劣勾配 と 共役関数 があります。いずれも凸関数にとって特に重要な概念ですが、通常の書籍だと当然動きのない図でしか描かれていないため、イメージしづらい方もいるでしょう。そこで代表的な凸関数について、劣微分・劣勾配および共役関数のアニメーションを作りました(初めて本格的にGoogle Colabを使いました)。本の図よりはもっと鮮やかにイメージでき理解が深まるかと思います。なお、厳密には「閉真凸関数」などと呼ぶべき箇所を簡単のために単に「凸関数」と記述しています。厳密な定義などは専門書(例えば [福島2001,冨岡2015])を参照ください。 多変数関数 $f$ のある一点 $x$ での傾き(昇る方向)を表すベクトルを 勾配 と呼び $\nabla f(x)$ と表しますが、微分不可能な点では勾配を求めることができません。この問題を
回収できなかった案件についてお話しよう はじめに 今からx年前の事。某技術者が多く集まるSlackにて C++でWebクローリング出来る人はいないか? とのことで、以前より Boost.Asioの記事をかいてる私に話がきた まず案件をくれた人について、はじめての取引なので周辺の人に話をきいたが 少し甘いという意見はあるが、誠実で良い人という意見だったので請けた プロジェクト開始 案件を紹介してくれた人の友だちよりメッセージがきてChatworkに入った 具体的な案件に関しては担当の技術者と話をしてほしいとのことで 金額は時給1万円で月末精算、働いた時間を申請してほしいと言われた 案件内容 作業者と話をした 今までC言語でWebのクローラーを作っていたが、C言語だとOpenSSLがメモリリークしていてすぐ落ちる だからC++でクローリング部分だけ作って欲しい。内部はC言語のシステムがあると
はじめに 「心理的安全性」とは、「対人リスクを取っても問題ないという信念がチームで共有されている状態」であるとか、「自分のキャリアやステータス、セルフイメージにネガティブな影響を与える恐れのなく、自分を表現し働くことができること」というような定義がなされています。 心理的安全性という言葉はともすれば、ただ快適で居心地のよい職場という意味にも聞こえます。そのため、ぬるま湯で緊張感のない関係性のことを「心理的安全性が高い」と言うのではないかと考えても不思議はありません。 そのため、友人関係のようにプライベートの時間を長く共有する関係になることが、心理的安全性が高いのだろうと考え、飲み会やバーベキュー、慰安旅行などを企画してみたりとプライベートでも遊ぶ機会を増やそうと考える人もいるでしょう。 いわゆる「アットホームな会社です」とアルバイトの求人記事に書かれているような状態です。こういった求人内容
以前「FizzBuzz Zero ―― 人類の知識なしでFizzBuzzをマスターする」という記事がQiitaに出ました。 これに対して「人類の知識を使わないと大変すぎる」という趣旨の意見がいくつかありました。確かにGitHubで公開されているコードをみると全部で31,086 バイトで、少し長いような気もします。 では、人類の知識を使うと、どれくらい簡単にFizzBuzzを書けるのでしょうか? 気になって調べたので、備忘録も兼ねて記録したいと思います。 この記事の内容をざっくり2行で: 様々なプログラミング言語の最小のFizzBuzzコードを比較する 最短で1バイトで実装できる 目次: 1. Code Golfとは 2. Python3 3. Python2 4. C 5. Ruby 5. Bash 7. GolfScript 8. Vim 9. Hexagony 10. Lazy K 1
はじめに 技術的な指摘をすることを「マサカリを投げる」と呼ぶ。ネットスラングにありがちだが、この言葉の意味は常に変動しており、地域、人によっても定義が異なる。現在では、何か自分で詰めが甘いことを書く時に「修正、批判コメント歓迎」の意味で「マサカリをお願いします」と言ったり、誰かが適当なことを書いてコメントやブコメで炎上している時に「さっそくマサカリ投げられてて草」というような使われ方をしているようだ。 この「マサカリ」という言葉がいつ、どのような形で使われるようになったのか、できる範囲で調べてみた。 2006年以前 僕は1990年代の後半から2000年の前半にかけて、Niftyのフォーラムや、いくつかの技術系メーリングリストに登録していたが、当時この意味での「マサカリ」という言葉を目にした覚えがない。とりあえず当時所属していて、現在過去ログが見られるDelphiやBCB-MLの過去ログで検
TL;DR Wordは箇条書きを作る度に膨大な情報がコピーされ、それは元の箇条書きを消しても残る(Windows/Mac共通) Wordは文章を編集するたびに、中身が断片化する。一度断片化したら元には戻らない(Mac版のみ) 断片化、参照されていない箇条書き情報については「名前をつけて保存」しても解消しないが、「全て選択してコピー、新規作成したファイルに貼り付け」で解消する。 2018年9月19日追記 本稿にはもともと「Windowsで作成したWordファイルをMacで修正すると断片化する?」という仮説が追記として掲載されていましたが、実際には「作成環境に関係なく、Mac版Wordで編集すると断片化する」ことがわかりましたので、後で読む方の混乱を避けるためにその追記を削除しました。 はじめに Wordファイルを扱っていて「だんだん重くなっていく」と感じたことはないだろうか。特に、代々引き継
概要 先日発表されたpix2pixが楽しそうだったので実際に動かしてみた。 対象を絞れば学習画像が500枚程度でもそれなりに動く。 結論:GANすごい。 はじめに pix2pixとは、ざっくりと言えば、2画像間に潜む画像変換をDNNで表現してしまおう!というものです。変換前後の画像さえ用意できれば大体どんな変換でも対応可能らしく、例えば以下のようなことが可能らしいです。 航空写真 → 地図画像 モノクロ画像 → カラー画像 線画 → カラー画像 (上記すべて逆も可能) 何やら万能っぽい雰囲気!素晴らしいことにコードが公開されている(torchだけど)!しかも自前画像でも簡単に試せそう! ということで試してみました。 データ flickrから収集したラーメン画像(1,000枚)を使用。多少のゴミは無視で。公式のソースコードに合わせて、各画像を中心でクロップ&リサイズしておき、学習画像と評価画
画像処理は難しい。 Instagramのキレイなフィルタ、GoogleのPhoto Sphere、そうしたサービスを見て画像は面白そうだ!と心躍らせて開いた画像処理の本。そこに山と羅列される数式を前に石化せざるを得なかった俺たちが、耳にささやかれる「難しいことはOpenCVがやってくれるわ。そうでしょ?」という声に身をゆだねる以外に何ができただろう。 本稿は石化せざるを得なかったあの頃を克服し、OpenCVを使いながらも基礎的な理論を理解したいと願う方へ、その道筋(アイテム的には金の針)を示すものになればと思います。 扱う範囲としては、あらゆる処理の基礎となる「画像の特徴点検出」を対象とします(実践 コンピュータビジョンの2章に相当)。なお、本記事自体、初心者である私が理解しながら書いているため、上級画像処理冒険者の方は誤りなどあれば指摘していただければ幸いです。 画像の特徴点とは 人間が
import numpy import scipy numpy.__version__ # 1.9.3 numpy.show_config() # blas, lapack, atlasと一緒にビルドされているか確認できる scipy.__version__ # 0.16.0 scipy.show_config() # numpyの場合と同様
Machine Learning Advent Calendar 2015 第14日です。去年のAdvent Calendarで味をしめたので今年も書きました。質問、指摘等歓迎です。 この記事の目的 ここ2~3年のDeep Learningブームに合わせて、リカレントニューラルネットワークの一種であるLong short-term memory(LSTM)の存在感が増してきています。LSTMは現在Google Voiceの基盤技術をはじめとした最先端の分野でも利用されていますが、その登場は1995年とそのイメージとは裏腹に歴史のあるモデルでもあります。ところがLSTMについて使ってみた記事はあれど、詳しく解説された日本語文献はあまり見当たらない。はて、どういうことでしょうか。 本記事ではLSTMの基礎をさらいつつ、一体全体LSTMとは何者なのか、LSTMはどこに向かうのか、その中身をまとめ
基本、個人的に勉強した内容を書き留めていくつもりです。間違っている箇所があれば指摘して頂けると、とてもうれしいです。 1. Boostingとは何ぞや Boostingとは弱学習器をたくさん集めて強学習器を作ろうという話が出発点で、PAC Learningと呼ばれています(PAC Learning:強学習器が存在するとき弱学習器は必ず存在するが、弱学習器のアンサンブルが存在する場合、強学習器と同性能の学習器を作れるかという話です)。他方、J.H.Friedma先生[1]が損失関数を最小化する枠組みでも議論できるんでない?という(おそらく)疑問から、なんと機械学習の枠組みでBoostingを説明してしまいました。損失関数を最小化する問題として再定義し、損失を最小化する方向を探すのに勾配情報を使っているので、Gradient Boostingと呼ばれています。 で、この方法が昨今のデータコンペ
NMFは行列を非負値の行列の積に分解する、毎度おなじみのあれです。分解後の行列の各要素に事前分布を導入したものがBayesian NMFです。 X_{vd} \sim Poisson(\sum_{k=1}^{K}\beta_{vk}\theta_{kd}) \\ \beta_{vk} \sim Gamma(c_{0}/V, c_{0}) \\ \theta_{kd} \sim Gamma(a_{0}, b_{0}) 同じベイズ的行列分解モデルのLDAとの対応を考えると、$\beta_{:k}$をtopicと見なせます(Bayesian NMFの$X$とLDAの$W$は転置の関係にあることは少し注意です)。 一方で$\sum_{v}\beta_{vk} \neq 1$となるところが異なります。 Stochastic variational Bayesian method 変分ベイズ法に確率的
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く