てんやわんや

読んだ本や考えたことを自由気ままに書いてみる

APIを非システム部門にもわかるように説明したい

システムの話をユーザにうまく理解してもらうのって難しいですよね。

なんでこんなに高いの?それやってなんの意味あるの?そこ削っていいよ!!とか平気で言いますよね。ただ、そこで「無理!」と突っぱねてしまっては話は前に進まないですし、逆に「わかりました。なんとかします」と言ってしまえば地獄に日々が待ってるわけです。
運良く納品まで辿りつけたとしても、次回の見積もりでまた同じように値切られるのが見えているわけで。しかも一回受けてしまっているので「前はできたのになんで今回はできないんだ!」と、さらに首が締まること間違いなしです。
 
そうなると残された道は、<しっかり説明して理解してもらう>ということになるわけですが、まぁこれが難しいんですよね。そして、ちょうど私は今, API (web API)ってどう説明したらわかってもらえるかなぁ?と頭を悩ませているところでございます。古いwebシステムを改修する案件なんですが、なんでわざわざお金かけてやんなきゃいけないの?という問いへの回答として。
ということで、いくつか考えて見ました。
 

とりあえずメリットを説明してみる

これをやるとユーザ(システムの発注者のことね)にとってもこんないいことがありますよー、と説明して、じゃぁやろう!と言ってもらう作戦です。

使い方をしっかり決めるので、改修する時とかに仕様がわかりやすくて、テストもしやすいので、コストが安くなりますよ。とか。

 

んー。

これでは、『だったら最初からわかりやすく作ればいいじゃん?なんでわざわざお金掛けて作り直さないといけないの?』とか言われそうですね。今の何がダメで、それがどうなるからメリットがあるのか、説明できていないのでそうなりますよね。

もっと具体的にイメージをつかんでもらって、よさを実感してもらう必要がありそうです。

自動販売機にたとえてみる

いくつか、自動販売機にたとえている記事を見ました。こんな感じ?

  1. お金を入れる。
  2. ボタンを押す
  3. 商品が出てくる

簡単に使えますね。でも実際に自動販売機の中では、

  • お金が本物かチェック
  • いくら投入されたかチェック
  • 押されたボタンの商品の在庫をチェック
  • お金が足りるかチェック
  • 商品を押さえていたピンが外れて、一つだけ商品を取り出す。
  • 商品の金額を投入金額から引いてお釣りを計算する
  • お釣りの枚数だけ硬貨を取り出す

みたいに、たくさんの処理をしかるべき順序で行っているわけですね。これを、ユーザが意識しないで、誰でも簡単に買えるようにしているインターフェースがAPIなんですよ。と。

なかなかわかりやすいです。ただ、どこか違和感を感じたんですよね。なんというか、、、これってただの自動化してるだけで、インターフェースっていう部分をうまく表現しきれていないような、、、と。曖昧な表現で申し訳ないですが。

結構人によって読み取り方が違うので、例えて説明するのも難しいですね。

シンプルに考えてみる

なんか、誰にでもわかりやすいように、と思って具体的に具体的にと考えてましたが、これは間違いだったかもしれません。結局のところ、「APIとは〇〇である」と言えれば言いわけですよね。
てことで wikipedia より良さげな表現を拝借して選んでみました。
 
API とは Application Programming Interface である。
 
言い換えたただけです。ボツですね。
 
API とは Interfaceである。
 
少しそれっぽいですが、Interfaceってまた意味が広くて難しい言葉ですね。
 
API とは インターフェースの仕様である。
 
これまた仕様とは、難しい言葉ですね。却下。
 
API とは 標準化されたインターフェースである。
 
お、だいぶいい感じですか?
まさに、コンセントの形、電圧などが統一されていて、どんな電化製品でも同じように使える、という感じですね。逆に統一されてなかったら、毎回プラグの形を変形して、電圧もちょうど良くなるようにレジスター(あってる?)をいれて調整して、、、ってやらなきゃいけないですから大変ですね。時間もかかるしパーツも必要だし。システムでいえば、開発期間が長く必要でコストもかかるってことになりますね。
 
インターフェースって言葉が入っちゃってますが、これ以上思いつきませんでしたのでご勘弁。。。。
 

まとめ

API とは 標準化されたインターフェースである。
 
こう見ると至極当たり前のことをそのまま言っているだけにすぎないですね。なんて遠回りしたんだろうか。というか、最初からコンセントの例で説明すれば済んだ話でしたね。
 
 

 

FinTechがもたらす明るい未来

毎日のようにニュースに上がってますもんね。◯◯銀行がこんなサービスをリリースします、とか、FinTechは従来の金融機関をdisruptするのか、とか。似たようなものばかりで正直もう聞き飽きました。。。どこも似たようなものばっかりなんですもん。

最近ではInsTechなる言葉まで出てきて、もうやりたい放題ですね。だいたい保険も金融に含まれてるじゃないですか?なんでわざわざ。。。そもそもFinTechという言葉自体、完全に一人歩きしてますね。

さて、そんなどうでもいい前置きもこれくらいにして、本題にいきたいと思います。

 

FinTechはDisruptiveなのか?

最近は減ってきた感じがありますが、半年くらい前には"FinTech" = "Disrupter(破壊者)" とという構図で語られることが多かったです。あたかもエイリアンが、これまで過保護なまでに守られてきた金融業界を侵略しにやってくるかのような雰囲気が漂っていましたが、最近はすっかり落ち着いてきました。

というのも、金融業って岩盤規制と呼ばれるように、かなり規制が厳しいんですね。(ざっくりww)
なので新規参入しにくいというのが一つの理由かと思います。

じゃぁできないかといえばそんなことは決してないです。実際、証券ではSBI証券楽天証券が比較的最近立ち上がってかなりのプレゼンスを持っています。ただ、実際やろうと思うと結構タフだ、というのが実際のところだと思います。

もう一つの理由としては、FinTechベンチャーと呼ばれる面々は徹底的にユーザ指向だということです。UIやUXにこだわり、ユーザの反応を見て常にサービスを改善し続けることに全身全霊で取り組んでいて、すべてのエネルギーをフロントエンド、つまりユーザのために集中したいという思想があるのだと思っています。

そうすると、インフラ的な部分は今までの金融機関に任せておいたほうがやりやすい、ということなんですね。いい具合に役割分担ができそうです。

まぁ、いちユーザとしてはそんなことは大して重要ではないですが。とりあえず金融機関にお勤めの皆さん、過ぎに職を失うことはなさそうですね。おめでとうございます。

とまぁ冗談はほどほどにして、

FinTechって何がいいの?

一番身近なのは自動家計簿ツールですかね。MonryForwardとかMoneyTreeとか。CMもやってましたね。オンラインバンキングの IDとかクレジットカードのオンライン用のIDを入れておくと、自動で家計簿をつけてくれるという便利なやつです。私も使ってます。月に一回しか見てませんが。。。

次に馴染みがあるのが決済系のサービスですかね。Squareというのが有名です。iphoneとかipadのイヤホンジャックに専用のカードリーダをつけると、クレジットカードの磁気やICチップで読み込んで決済ができるやつです。今までのでっかいレジって結構高いらしんですが、これがいらないので新しくお店をやる人なんかには嬉しいですね。あとは屋外とかでも簡単に使えるので、場所を選ばずカード決済できるのもいいですね。

もう少し高度なものになると、ロボアドというのがあります。専用口座にお金をまとめて入れておくと、ロボット(高度なアルゴリズム)が自動で運用してくれるというものですね。最近よくCMでやっているラップ口座というものもありますが、こちらは結構手数料が高い(人が運用してるので)ということと、運用してもらうためには数万円以上預ける必要があるので、ハードルが高いです。

なんか、騒がれている割には以外と普通だな、と思われるかもしれませんが、、、もう少し突っ込んでいきましょう。

 

ブロックチェーン

数年前にマウントゴックスが倒産したというニュースで話題になりましたね。ビットコインと呼ばれる仮想通貨のベースになる技術です。

簡単に言えば、改ざんされないようにみんなでそれぞれ台帳を作って監視しましょう!という仕組みのことです。
新しい記録を書く時には、それまでの記録が改ざんされていないことを証明するためのハッシュ値をつけながらチェーンのようにつなげていきます。つまり、誰かが悪意を持って改ざんしようとしたら、全ての人の台帳の、過去の全ての記録を書き換えないといけないので、実質的に改ざんができない、というわけです。

難しいですね。

で、これを応用していろんなことができます。例えば証券取引所は、買う人と売る人の間で第三者として、取引所が不正がないようにしっかり管理しています。これをブロックチェーンで置き換えれば取引所入らなくなるわけです。改ざんされることがなくなりますからね。そうすると取引所が抜いている手数料がなくなるので、証券取引の手数料を安くできる!というメリットが期待できます。

そうなると取引所は廃業してしまうので、そうならないように世界中の取引所は必死で自分たちで実証事件を進めています。

オープンAPI

FinTechと呼んでいいのかわかりませんが、メリットを享受できるという意味ではこれが本命かな、と思っています。

先に紹介した自動家計簿ですが、現状は一部の金融機関を覗いて、IDとPasswordを登録する必要があります。これはMoneyForwardやMoneyTreeなどのサービスプロバイダのサーバーに保存されるので、何かあった時に怖いですよね。会社側からしてもそんなリスクを取りたくない、というのが本音ですが、仕方なくそうなっている状態です。そこで登場するのがオープンAPIという考え方になります。

Facebookアカウントでユーザー登録』、とか『twitterアカウントでログイン』とか、見たことありませんか?これは、そのサービスの変わってFacebooktwitterが代わりに、自分の身元を証明してくれるという仕組みになっていますが、これと似たような仕組みが実現できるのです。

まとめると、MoneyForwardやMoneyTreeにIDやPasswordを登録しなくてもいい!ということですね。

これだけだとあまり芸がないですが、将来的には送金とか振込とかを24時間手数料無料でできるようにならないかなーと思ってます。あらゆる金融機関のAPIを全てまとめて、残高や明細の参照だけでなく振込なども全てできて、電話番号などで友達を識別できれば便利ですよね。どの銀行の口座とか、意識しなくていいですし、手数料のかかる時間とか他行だから、とか気にしなくていいですからね。

似たようなコンセプトの送金サービスなどはもうあると思いますが、まだ使い勝手という意味では伸びしろあり、といった感じかと思います。

究極的にはSMSを送信する感覚で振込できるようになってくれるといいですね。各社がAPI公開しだしたらLINEなんかはすぐに飛びつきそうな気がしますよね。だた簡単にできすぎでも、送り間違いとか怖いですね。まぁその辺はうまくやてってくれることでしょう!!結構近く実現してくれるんじゃないですかね?

 

無責任な終わり方ですが、便利な未来を期待してこの辺りで失敬!

今年はラニーニャ現象が起こっているんだと

学生の頃、地理で習いましたね。

地理なんて選択していないから知らないよ!とかそんなの一般常識じゃない?と思う人もいると思いますが、ちょっと自分の記憶を呼び覚ますための書き出してみる。

 

ラニーニャ現象って?

ラザニアみたいな名前で美味しそうですが、気象用語(なのかな?)的なやつです。
雑に言えば、エルニーニョ現象の逆の現象。

エルニーニョ現象の方が若干知名度高いですよね。ペルー沖の海水温度が上がって漁業不振になったり、日本では冷夏になりやすいと言われていたりするあれです。

ラニーニャはその逆の現象なので、海水温度は低くなり、日本では猛暑になりやすいと言われていますね。ということなので、今年の夏は覚悟が必要ですね!

 

なんで海水温度が変わるのか?

風邪のせいです。じゃなくて風のせいです。赤道付近は、東から西に向かって風が吹いています(貿易風というやつ)。この風が強くなると、水面の比較的暖かい(太陽に当たることで温められた)海水が西に追いやられます。すると、その空いたスペースに、したから海水が上がってきます。深いところにあった水は(光が当たらないので)冷たいので、ペルー沖の(表面の)海水温度が下がるわけです。(⇨ラニーニャ現象)

当然、風が弱まると逆のことが起こりますね。(エルニーニョ現象

 

なんで風が強くなったり弱くなったりするかというと、、、、、、
その理由はよくわかっていない、と教わった記憶があります。

 

ちょっと待てよ?

日本だとよく偏西風って聞くけどさ、これって西風だよね?さっき東風って言ったよね?どっちが正しいのよ?と。

これってどれくらいの人が知ってるんですかね?地理を選択していた人は知ってるとして、あとは気象予報士系の勉強したことがある人かなぁ。パイロットとかも知ってそうですね。

 

ざっくり言うと、
赤道付近は東よりの風
中緯度(日本があるあたり)は西よりの風
高緯度(北欧とかロシアの北のほうとか)は東よりの風
ってことみたいですね。

まず赤道付近は、地表温度が高いので空気が暖められて上昇気流が生まれます。
すると気圧が下がることで(北半球の場合は)(地表付近では)北から空気が流れ込んできます。で、ここがポイント。地球は自転しているので、北から吹いてきた風がどんどん右に曲がって行きます。(不思議!!)となると、南に向かって右カーブですから、西に進むわけですね。ということで東よりの風になります。

問題は次ですよ。

赤道付近で上昇してきた空気は、日本の南のあたりで下降してきます。(なんでそこで下降してくるのかはよく覚えてません。。。)降りてきた風は地表にぶつかって、北と南に分かれます。南に行った空気は先の説明通り、南西方向に進んで赤道の方へ流れていきますね。で、北に吹く風は、偏西風となって北東方向へ進んで行きます。

え、北東ですか?はい、北東です。

さっきは自転のせいで西ほ方へ流れるという説明でした。なんで今回は東なのか?
コリオリの力ってやつですね。Call Of Duty Modern Warfare2をやった方であれば、プリピチャの廃墟と化したマンションの高層階からアンチマテリアルライフルで超長距離狙撃するときに考慮しろと言われたあれです。

よくみる実験でいうと、回転する円盤(北半球をイメージして反時計回り)の上にコインを転がすと、そのコインの軌跡は右カーブして描いている、というあれです。(検索したらすぐに出てくると思います。)

ようは、北半球ではまっすぐ進もうとすると慣性の力によって右に曲がっていく、ということです。水が流れるときに右周りで渦巻きができるとか、台風が右巻きだとかいうのも同じ理由です。(最初からそう言えばよかった。)

南半球だとこれは逆ですね。ご想像の通りです。

 

最後に高緯度では、曲で冷やされた空気が下降気流となって降りてくるので、南方向の風が吹きます。もう簡単ですね。南方向に吹くので、北東の風になります。

 

疲れたのでそろそろまとめると、今年は猛暑になるかもしれないので熱中症に気をつけましょう!!とうことですね。

後半はかなりタイトルとずれた内容になってきましたが、色々と思い出すいい機会になりました!

 

深層学習専用プロセッサ「TPU」?

Googleがこんなものを作っていたらしい。
難しい話はわかりませんが、なんかかっこいいですね。

消費電力あたりの性能が10倍?

これまでよく使われていたGPGPUFPGAに比べて、消費電力あたりの性能が10倍とのこと。
処理速度が10倍というわけではないが、消費電力で少なければ発生する熱が小さくなるので、それだけエネルギーロスが少ないとか、冷却装置を簡略化できて省スペース化できるとか、そんなあたりがメリットになるんでしょうか?

私たちにどんなメリットが?

ものすごい計算エネルギーが必要なAIとかに活用される、いや、すでにされているらしい。
AIというと囲碁で人間のチャンピオンに買ったとか、将棋の電王戦が思い浮かびますが、もっと直接的に恩恵を受けているのが検索エンジンじゃないですかね?
Googleの検索で、すでにこれが使われているらしい。あいまい検索とかの痒いところに手がとどく感じがいいですよね。
Googleってソフトウェアの会社だと思ってましたが、こんなところにも力を入れていたんですね。

ところで、TPUのT(テンソル)ってなんでしょう?調べてはみたものの文系の自分にはぜんぜん理解できない。。。

読書メモ - AIの衝撃 人工知能は人類の敵か

読んだきっかけ

自動運転だったり、MicrosoftのTayとか、女子高生AIのりんなとか、何かとAIが話題になっているので、せっかくだということでAIがどんなものなのか知っておこうと思った、というものすごく軽い気持ち。

さらっと読んでみた中で考えたこと、(正しいかは置いておいて)理解したことを書いておこうと思います。稚拙な文章、表現力ですが、そこはご容赦ください。 

雑感

単純に、読み物として面白かったです。本を読むのは比較的遅い方ですが、3時間くらいで読めた感じです。難しい専門用語が並ぶわけでもなく、技術的な内容の説明も多いわけではなく読みやすかったです。ディープラーニングというコアの仕組みについては直感的にわかりやすく簡略化されて説明されて、具体例も多く書かれていた(全体の半分くらいはそうだったかも)ので、イメージを掴むには十分だったと思います。この本を読んでディープラーニングに興味が湧いたので、他の機械学習関連の本も読んで見たいと思います。

 

では早速本題に。

AIとはどんなものか?

AIと聞いてイメージするのはどんなものでしょうか?真っ先に思い浮かぶのはやはりSF映画でですね。まず出てきたのがターミネーターです。そしてアイ、ロボット。これを初めて見た時は、幼いながらかなりの衝撃を受けました。見た目こそ機械ですが、完全い意思をもった生命体で人類と遜色なく描かれているわけですからね。SFとは知りつつも、なんとも言えない恐怖感を覚えました。

あと最近で言えばトランセンデンスですね。素人から見ると、こんなこと実際あり得るの?と思いつつも、最近のニュースなどを見ているとそのうち現実になるんじゃなきあ?とも思ってします。そういえばMetal Gearシリーズに出てママルポッドなんかもそうでしたね。

じゃぁ実際のAIってどんなものなのか?というと、

『この場合にはこうなる』

『あの場合にはあんなふうになる』

といった条件を全て、研究者が手作業で覚えさせていたようです。そう、私たちがメールソフトの仕分けルールを設定しているのと何ら変わりません。人間が決めたルールに従って、自動でYes/Noを判断するだけのもので、我々のイメージするAIとは全然違いますね。

ですが、実はこの考え方が今の高度なAIのもとになっているのです。ルールの精度をどんどん高めていくことで、より人間らしい判断ができるようになってきます。でも機械が自分でルールを改善していくって、どういうこと?と思いますが、それが最近よく聞く深層学習(ディープラーニング)と呼ばれるもので実現されているそうです。未知の問題に対して出した答えが正しければ、今のルールの信頼性は上がりますが、もし間違っていれば、どこかのルールが違うということになります。そこで、問題に対応した後で、このルールが正しかったのかを検証する、遠いうプロセスを行うことで、間違っていた場合には正しくなるように修正していきます(実際には、内部の変数を調整することで整合性を保てるようにしているらしい)。このようにどんどん精度を上げていくことで、ちょうど人間が成長するに従って知識を得て、(必ずしもそうとは限らないが)正しい判断ができるようになっていくのと同じように、機械も学習していくのです。

そう考えると、なんだか人間ものすごく無機質なものなのかな、と感じてしまいました。

 

シンギュラリティ(特異点)とは

仮に、機会が人間と同じように学習して成長できるとすると、将来的に人間を超えてた知性を身につけてしまうかもしれない、という心配が出てきます。そのタイミングのこ後、シンギュラリティと呼んでいます。

人間が考えて作ってるんだからそれ以上のものなんてできっこない!と思う一方で、寿命がなく処理速度も速いコンピュータの方に分があるとも考えられます。(素人目線でで恐縮です。)将棋や囲碁、クイズではすでにコンピュータのほうが優っているという見解が示されていましたが(一般的にもそう解釈されていると思いますが)、これらは特定の絞られた領域での話ですから、総合的に見るとどうなんでしょうか?ありえない話ではないと思います。

特異点に到達したら人はどうなるか?

SF映画などでは、人は害悪と判断されて機械に淘汰されてしまう、というストーリーも描かれていたりして、とても恐ろしいですね。ですが、そうではなく、その時には人は新しい活躍領域を見つけるのでは、と書かれています。

この可能性は十分あると思っています。というのも、(勝手な想像ですが)我々が自覚できていないだけで、脳は膨大な量の情報を処理しています。閾下知覚と呼ばれているもので、サブリミナル効果としてよく知られています。で、機会がこれまで人間が行ってきた思考や判断を肩代わりしてくれるのであれば、その負荷が減った分だけ閾を下がってくることはないかな?と思っています。つまり、人は潜在能力の大部分を(処理能力の問題で)閾下に抑え込んでいるだけで、これを開放すれば空を飛んだりテレポーテーションができたり、、、、ということはないかもしれませんが、実はまだ隠された能力を秘めているのかもしれない、と期待を込めて考えています。

避けて通れない問題

最近の自動運転の話題でも取り上げられていますが、以下の場合にAIはどう判断するべきでしょうか?

  • 自動運転中、子供が飛び出してきた。しかしブレーキをかけても間に合わない。
  • 左の歩道には数人の歩行者がいる。
  • 右の反対車線には、大型トラックが走ってきている。

飛び出すのは悪いですが、子供なので仕方ないかもしれません。かといって歩道に突っ込めば複数人の関係ない人の命が犠牲になりかねません。では反対車線に回避できるかといえば、おそらくトラックにぶつかって搭乗者は助かりません。フレーム問題と呼ばれているようです。
難しい問題です。まだ統一見解も出ていないようです。

残る疑問

AIがどんなものかはなんとなくわかりましたが、残る疑問があります。それは、意識がどのように生まれるのか、ということ。AIの進歩によって、自然発生的に機械が意思を持つことはないだろう、という見解が示されていました(と理解しました)。自分もそうだと感じていますが、では自分という意思はどこに宿っていて、どのように発生したのか。ものすごく不思議です。(おそらく一度はみなさん考えたことがあるんじゃないでしょうか?)

まえがき

毎日いろいろ考えたりするけど、意外とすぐに忘れてしまったり、少し時間が経つと考えが全く変わっていたりする。

そんなものを後から見返すことができるように、備忘録として書いておこうと思った次第。