「技術」カテゴリーアーカイブ

ThisPersonDoesNotExist.com – 「実在しない人物」の写真を作ってくれるサイト

thispersondoesnotexist.com にアクセスすると、ページいっぱいに一枚の顔写真が出てきます。リロードするとまた別の人の顔が出てきます。

これだけだといったい何のサイトかわかりませんが、実は、この表示された顔写真、実在する人物ではなくプログラムで合成されたものだそうです。

Phillip Wangさんが、NVidia の研究チームがSylte-Based GAN の論文で発表し、オープンソースで実装を公開したStyleGANの利用例として作ったデモです。

リロードすると、たまにアクセサリー周りや肩のあたりなどに変なところが出てきますが、ほとんどは驚くほど自然で、これを例えばアイコンにしても、実在の人物だと信じさせることができてしまうでしょう。

これは、左顎のところに不自然さが出た例

論文紹介の動画はこちら。

複数の特徴量を増減させることで、写真と写真を掛けあわせたような新しい写真、それも自然な写真を作る様子が見られます。

顔写真以外のデータで遊んでみている人も多いようです。

via reddit/technology

テレビから”Alexa”と流れてもAlexaが反応しない技術をAmazonがスーパーボウルに向け投入

4日に行われるスーパーボウルでは Amazon もスマートスピーカー アレクサのTVCMを流すようですが、それに先がけて「テレビが “Alexa” という言葉を流しても家の Alexa 機器が反応しない技術」を配備したと Amazon の開発者ブログで明かされています。

この技術、基本的には、発話された”Alexa”に対する指紋のようなデータ(acoustic fingerprint)を使い、家庭でユーザーが発した”Alexa”ではないということを判定するもの。

既知のCM中の”Alexa”については、あらかじめ音声指紋を計算しておき、Echo デバイスがその場で突合せをして撥ねているそうです。なので、今回のCMに出てくる”Alexa”を無視するだけであれば、サーバ側の処理は不要ということになります。

ただ、それだけではなく、同時に広い地域の多数のEchoデバイスから、同じ発声の”Alexa”が届いた時に、これをテレビやラジオの放送によるものだとリアルタイムに判定して無視することもできるのだそうです。事前に知らされてない状態でラジオのDJがリスナー達のAlexaを起動しようとしても、防げるようになった、ということになります。

スーパーボウルで流される予定の動画は、YouTube で既に公開されています。ハリソン・フォード氏が出演。過去の「うまくいかなかった Alexa 組み込みデバイス」を紹介するという面白動画になっています。

テレビ・ラジオだけでなく、世の中に広く存在する”Alexa”に対処してるとすると、例えば Google Home が喋る”Alexa”にも反応しなくなってるかもしれませんね。そうすると過去にご紹介したこういう遊びは動かなくなるのかな。

履歴書の機械学習が女性差別になってしまい、Amazonが止めたというニュース

ロイターの記事 “Amazon scraps secret AI recruiting tool that showed bias against women

アマゾン社の中の人による匿名の情報ということだけれど、2014年に組まれたチームが、求職者からの履歴書を機械学習して(アマゾンレビューのように)星5つでランク付けをしたら、ソフトウェア開発者や他の技術者の高評価が男性に偏ってしまうことに気づいた、ということです。

学習に使った過去10年の求職者に占める男性の割合が多かったために、男性的な言葉を多く使った履歴書が優秀とされてしまったそうです。入力にバイアスが掛かってれば、結果にも掛かるのはある意味当たり前ですね。アマゾンに限らず、アメリカのIT企業で社員の男女比や有色人種比率が公表されたり比較されたりしている中で、これまでのやり方をベストとして強化すれば、属性にこだわらず優秀な人を取るということができなくなってしまいそうです。

記事によれば、結局、このチームは解散となったということ。今は別のチームで、重複したデータを削除するとか、多様性が保たれるようにスクリーニングするとか、よりマイルドな使い方を追及しているということです。

賞金付きクイズアプリの答えを求めるbot

HQ というオンラインクイズの iPhone アプリがあり、アメリカで流行しつつあるそうです。

一日2回開催される、12問のトリビアクイズに全問正解すると、その回の賞金を正解者で山分けできる、というサービスで、アプリに登場する司会者に特徴があり、家族・友人・同僚などを巻き込みやすい形になっているのが広まっている秘密のようです。

そんなクイズアプリに対して、前記事のようなプログラムによる解法をデモしたのが、トビー・メラーさんんのこちらのブログ記事

デモ動画はこちら。02:00 前後から、アプリの出題(画面右側)に対して、画面中央に開いたコンソールが、3択の回答を表示しています(小さくて見づらいので、キャプションで強調表示されていますが)。

回答が提案されるプロセスは以下の通り

  1. iPhone のアプリ画面を QuickTime で MacBook に映す
  2. Automator で問題と回答3択のスクリーンショットを撮る
  3. Google Vision API でテキスト化
  4. Googleカスタム検索API で、”問題文”や”問題文” AND 回答候補 を検索
  5. 検索結果の先頭9個の抜粋文に、回答語が出てくる回数をカウント
  6. 抜粋に回答が出ない場合は、URLを開いてページ全文から回答語をカウント

この単純な方法で、7秒以内に正答を得ることができているそうです。

なお、実際のゲームでこういったプログラムを使うのは、HQ アプリの利用規約に触れるということで、メラー氏は録画したゲーム画面を使って、こういったことが可能だ、という検証のみを行ったということです。

HQ アプリの方でも、不正な参加者を無くすべく、画像を保存するユーザーを弾いたりと対策を実施しているようですが、なんとなればiPhone の画面を別のカメラで撮影したっていいわけです。大なり小なり賞金が出る、という時点で、検証ではなく本気でこういう解法を使ってくるユーザーが出るのは避けられなさそうに思います。

HQ - Trivia & Words

カテゴリ: ゲーム, 教育, トリビア
言語: EN
価格: 無料
バージョン: 1.4.9

開発者: Intermedia Labs
公開日: 2017年8月26日
評価(全バージョン):
(32人のレビュー)
評価(現バージョン): 評価なし

スクリーンショット

screenshot 0screenshot 1screenshot 2screenshot 3screenshot 4screenshot 0screenshot 1screenshot 2screenshot 3

1ツイートに収まるブータブルなゲーム

Square社のセキュリティエンジニア、アロク・メングラハニさん(Alok Menghrajani, @alokmenghrajani)が公開したツイートは、ツイッターの一回のつぶやきに収まる280文字で、ブート可能なゲームを動かすというものです。

ゲームの内容は、長くなっていく線の方向を上下左右キーで操作して、画面の端や自分自身にぶつからないようにするというもの。Snake や Tron 系のレトロゲームですね。

このツイートをコマンドとして実行し、できた .iso ファイルを、VirtualBox にマウントして実行してみました。

メングラハニさんのブログでは、このイメージをCDに焼いて、実機で動かしている様子も公開されています。

via The Verge

プログラムはロックだ。あるいはロックがプログラムだ。プログラミング言語Rockstar

rockstar-js は、Rockstar言語の JavaScript によるトランスパイラ実装です。

Rockstarプログラミング言語とは何か? 言語仕様書にあるように、「1980年代ハードロック・パワーバラードの歌詞に大きく影響を受けた、歌詞として通用するプログラムが書けるようにデザインされた新言語」です。

FizzBuzz の実装は、サンプルコードからたとえばこんな感じになるということで、


Modulus takes Number and Divisor
While Number is as high as Divisor
Put Number minus Divisor into Number
(blank line ending While block)
Give back Number
(blank line ending function declaration)
Limit is 100
Counter is 0
Fizz is 3
Buzz is 5
Until Counter is Limit
Build Counter up

これだと、英語の文章風といってもまだ「あ、プログラミング言語だな。FizzBuzz 書いてるんだな」となりますが、言語仕様を活用してロック風に書いた例では、こんな風になってきます。


Midnight takes your heart and your soul
While your heart is as high as your soul
Put your heart without your soul into your heart

Give back your heart

Desire is a lovestruck ladykiller
My world is nothing
Fire is ice
Hate is water
Until my world is Desire
Build my world up
If Midnight taking my world, Fire is nothing and Midnight taking my world, Hate is nothing
Shout "FizzBuzz!"
Take it to the top


歌詞だと思って訳してみました。

真夜中がお前の心と魂を奪う
お前の心が魂と同じ高みにある時
魂のない心をお前の心に注げ

心を取り戻せ

欲望は恋に落ちた色男
俺の世界には何もない
炎は氷
憎しみは水
俺の世界が欲望ならば
その世界を築きあげろ
真夜中が俺の世界を奪うなら、炎なんてなんでもない
真夜中が俺の世界を奪うなら、憎しみなんてなんでもない
“FizzBuzz!”と叫べ
それを頂へと高めよ

任意の小文字の単語に冠詞や”my”, “your”をつけると変数になるとか、代名詞は直近に定義された変数を参照するというルールに、true/false でなく right/wrong, +/- の演算のエイリアスとして”Build up”/”Knock down”が使えるとか、加減乗を”with”/”without”/”of” でも表せるとか、ドラマティックな歌詞を書けるようにする仕様が用意されています。

たくさん数値が出てくるとロックっぽくないので、数値も任意の単語の語の長さなどで表現できるようになっています。

これで、”boolean heart = true;”みたいな文を、”My heart is true”と書けたり、”int i = 16;”が”Sweet Lucy was a dancer”(a=1, dancer=6 文字で16)と書けたりするわけですね。制御構文も用意されていてループも書けるので、慣れてくれば前述の2つ目のような、実にロックっぽい動くプログラムが書けてしまう、ということ。実際手元で変換したコードが、ちゃんとFizzBuzz として動きました。

rockstar-js は、JavaScript製パーザ・ジェネレータPEG.jsで作られています。言語仕様のメモには「ミートローフの歌詞に意味があるように見えるようなプログラミング言語があったら面白いだろう?」とも有ったので、Meatloaf の曲の歌詞を食わせてみたのですが、I’d の “‘” でパーズエラーになるなど、実際には言語仕様を良く読み込んでかなりの腕前が無いと、ロックの歌詞として読めつつもちゃんと動くプログラムを書くのは難しそうです。

言語仕様の方のリポジトリには、Python インタプリタのプルリクエストも投げられており、Rockstar言語がより多くの環境で使えるようになるかもしれませんね。

求人票に出てくる Rockstar

英語圏のIT業界の求人募集では、「突出した才能を持った人」という意味で、”Wizard”(魔法使い)、”Guru”(導師)らと並んで、”Rockstar”求む、などと書いてることがあります。まあ、使い古されてちょっと飽き飽きされている表現なのかもしれません。実際、向こうの求人サイトを検索してみると、Rockstarたくさん出てきます。何千件も

dylanbeattieさんがRockstarの言語仕様を作って公開した主な動機の一つは、

もし Rockstar を実在する(無意味な)プログラミング言語にできたら、リクルーターや人事マネージャーは二度と「ロックスター・プログラマー求む」って書けないだろう?

だそうです。そんな突出した人材を欲している企業に、この Rockstar 言語を覚えただけの人が求職してきても困るでしょうね。

via Hacker News