シンギュラリティの日に劇的な変化はあるのか?

ChatGPTの誕生は、その分野を問わないあまりに汎用的な応答に対し世界が驚いていて、技術的なブレークスルーとなっているのは間違いない。人によっては、「ChatGPTの誕生ですでにシンギュラリティが到達した」とも言われるが、一方で世界は一瞬で劇的に変わっているわけではない。

Xでフォローしている方々も、なんだかんだ劇的には変わらないのではないかと予想している人も多いように感じる。

まずChatGPTをはじめとするLLMについて。自分の理解としては、Neural Network (とくにLLMで用いられているTransformer) は入力文章の長さNに対して、1回の推論にかかる時間はたかだか O(N)〜O(N^2) であるという事実。

例えばNeural Networkを用いてNP Completeな問題の巡回セールスマン問題(TSP)が多項式時間で解けるようになるかというと否だろう(解けてしまうならP≠NP問題が、P=NPとして解かれたことになる)。この世の中の問題には、問題に応じた難しさというものが決まっていて、これはある離れた2点間を旅行するときにどんなに最短でもその距離を移動しないと到達できない(ワープできない)のと同じで、難しさに応じた問題を解くのには物理的にそれだけの空間(メモリ量)・時間・エネルギーが必要であるということだと理解している。

LLMとは別に、特に画像生成領域の方で流行っているモデルで拡散モデル(Diffusion Model)というものがある。この拡散モデルは同じモデルを拡散ステップの数だけ(多いと数千回などが使われる)推論する必要があるのだが、今はこの拡散ステップを問題の難しさに寄らずに固定の数で推論している。

これに関連する内容で、自分が専攻していた量子コンピュータの分野では断熱定理というものがある。この定理では、ある初期状態Aから計算を始めて、答えの状態Bに正しく遷移するのに必要な時間はその問題(量子断熱計算では問題がハミルトニアンHの時間変化で定義される)の難しさに依存する、とされていて、簡単な問題なら多項式時間で解けるし、難しい問題は指数的な長さの時間をかける必要があるとしている。

つまり、難しい問題を正確に解くには、その難しさの分だけの時間をかける必要があるのだ。これは拡散モデルの拡散ステップを増やすことに相当する(その意味では画像生成の多くは多項式時間で解ける”簡単目な問題”に属するということなどだと思う)。

上記のような考えでAGIが出てきたとしても”指数関数的な”飛躍(多項式時間で解けないような問題が高速に解かれるようになる)というのは起きないと考えられる。

ただし、定数倍の加速はありえて、それが10倍だとしたら、100年の技術進歩が10年に高速化されてしまうのだからやっぱり恐ろしいスピードアップにはなるのだと思う。

将棋AIは人間のプロより棋力が上となってしまった現在だが、全く何も理解できないわけではなく、ほとんどの手は後から考察すればその意図が見えてくるようなもので、これから先いろんな領域でAIがそういうような感じで使われるようになるのだと感じている。

LLM+Searchの可能性と直近の論文まとめ

昨年末に以下のような投稿をした。

OpenAIではQ* と言われるプロジェクトが水面下で動いているという噂があるとかないとか。読み物としては以下が面白かったです。

最近Google Deepmindが”FunSearch”、”AlphaGeometry” の論文を出したが、LLM+Searchはもっと汎用的にワークする可能性があり、今後もこの方向性でインパクトのある成果を量産してくるのではないかと思っています。

ではLLMを用いて探索を行うというのは具体的にはどういうことを指すのか、直近の論文動向を紹介します。

タスク(思考)を分解して、正しい答えに辿り着くタイプ

まず最初に紹介する3つの論文は探索というよりは、思考の分解です。ゴールに辿り着くまでの経路をきちんとステップに分けて、1つ1つ考えることで正しい答え(ゴール)に到達する精度が上がります。

CoT: Chain of Thought

“Chain-of-Thought Prompting Elicits Reasoning in Large Language Models”
https://arxiv.org/abs/2201.11903

これは、Few shot exampleをPromptとして与える際に、回答に至る思考過程を含めて上げることで答えの精度が向上することを示した論文です。上図の具体例を見るとわかりやすいですね。このように、1発で答えを出すのではなく、途中経路を含めて思考を実際に出力することで正しい答えに行き着くことができるようになります。

この派生で、Zero-shot-CoTというものも提案されています。

“Large Language Models are Zero-Shot Reasoners”
https://arxiv.org/abs/2205.11916

こちらのPromptはもっと単純で、”Let’s think step by step” という言葉を入れるだけで回答精度が向上するというもの。使うのがとても簡単で引用も多くされている論文です。

オリジナルのCoTの用にFew shot exampleをいれなくても、”Let’s think step by step” の一文を入れるだけでLLMが問題に応じて思考/タスクを分解して考え、正しい答えに到達することができています。

ReAct: Reasoning and Action

“ReAct: Synergizing Reasoning and Acting in Language Models”
https://arxiv.org/abs/2210.03629
https://react-lm.github.io/

CoTではReasoningだけだったのに対し、ReActはActionとしてWeb検索(より具体的にはWikipediaから関連する文章を検索し、LLMへの入力として補完)を加えることで性能向上をしています。

AutoGPT

https://news.agpt.co/
https://github.com/Significant-Gravitas/AutoGPT

ReActをさらに発展させて、いろいろな作業を自動化してくれるようにしたツール。

例えばこちらの例では、コーディングを全くせずに3分でWebサイトの構築ができたデモが共有されています。

LLM + Search: LLMを再帰的に利用して探索

さて、ここからが今回の本題で、目標に対する最適化を、LLMを再帰的に利用して探索することで達成するタイプの研究です。

Voyager

“Voyager: An Open-Ended Embodied Agent with Large Language Models”
https://voyager.minedojo.org/
https://arxiv.org/abs/2305.16291
https://github.com/MineDojo/Voyager

LLMを用いたOpen World Searchの例として、Minecraftをとかせています。

上述したReActやAutoGPTよりも以下のような独自の工夫を取り込むことで良い性能が出ており、Diamond Toolの発見までできています。

  • 1. Automatic Curriculum
    • 次に解くべき小タスクを決めます。現在の自分自身の入力をもとに、難しすぎず新しいタスクを考えます。(LLM自身にはある程度Minecraftの事前知識があることは良しとされているように思われます)
  • 2. Skill library
    • ソードと盾を装備してゾンビを倒す”combatZombie”など、ある程度の塊のコードを関数化=Skill化し、それをSkill Libraryに登録しておくことで、以降それらのSkillを参照し呼び出せるようにしています。こうすることにより、過去に成功した複雑な動作を使い回すことができます。
    • Skill Libraryの参照にはRAGのように、そのSkillの説明文に対するEmbeddingを用いています。
  • 3. Iterative prompting mechanism
    • 現在の自身周辺の環境状態や、コード実行時のエラーなどをもとに、次の実行修正などを考えます。

この論文ではLLMのOpen world searchの能力を見ることを目的とし、画像入力や生のコントローラーコマンド出力ではなく、MinecraftのAPIを経由して現在状態の取得や行動をおこなっています。

  • LLMが出力するいろいろなコードを実行させてみて、その挙動を見ることで、所望のアウトカムが得られるような行動=Skillを獲得していく
  • Skill Libraryという概念を通じて、自分自身の成長を取り込みながらより難しいタスクに挑戦していくことができる。

といったあたりでLLMを用いた探索が活用されています。Minecraftの事前知識があったからここまでうまく解けたのかもしれませんが、考え方は汎用的でいろいろなタスクに応用できる可能性を感じました。

以下3つはDeepMindの論文です。どれもタスクの達成度合いを定量的にスコアリングできるようなタスクに対して、そのスコアを上げるような出力をLLMを用いて探索しています。

RestEM

“Beyond Human Data: Scaling Self-Training for Problem-Solving with Language Models”
https://arxiv.org/abs/2312.06585

ReST: Reinforced Self-Training
EM: Expectation Maximization
を組み合わせた手法、ReST^EMを提案しています。

1. Generate (E-step): The language model generates multiple output samples for each input context. Then, we filter these samples using a binary reward to collect the training dataset.
2. Improve (M-step): The original language model is supervised fine-tuned on the training dataset from the previous Generate step. The fine-tuned model is then used in the next Generate step.

LLM自分自身に回答候補を複数出力させるE-stepと、その中で良かった候補をデータとしてSFTすることでLLMを改善させていくM-stepとで構成されています。

本論文では、以下2つの定量評価が可能なタスクに対して提案手法がうまくいくことを示しています。

  • MATH (Mathematical problem solving): Hendrycks’ MATH dataset
  • APPS (Code Generation): APPS (Introductory) dataset.

E-stepは更新されたLLMを用いつつも、M-stepは毎回Pretrained weightからFine tuneしているようで、とにかくOverfittingが問題になっていそうでした。

FunSearch

“Mathematical discoveries from program search with large language models”
https://www.nature.com/articles/s41586-023-06924-6
https://deepmind.google/discover/blog/funsearch-making-new-discoveries-in-mathematical-sciences-using-large-language-models/

Deepmindから、Natureの論文です。

FunSearchは、Function space searchの略で、LLMを用いて難しい問題に対してより良いスコアが得られるような関数(解法・アルゴリズム)を探索します。探索の際、Evolutionary Algorithmを用いてよいコード生き残らせながらどんどん進化させていくことでよりよいアルゴリズムが得られる仕組みとなっています。

論文では、cap set problem, online bin packingの2つの問題において、既存のヒューリスティックアルゴリズムよりもよいアルゴリズムを見つけることに成功しています。

全体の仕組みとしては、学習済みLLM (Code出力に特化したCodeyを使用) から解の候補を出力させ、それぞれのスコアを評価した後、生き残らせるものをPrograms dabaseに保存していきます。

次の解の候補を出力する際はEvolutionary Algorithmをもちいて、より良い候補にしていきます。このEAの部分はかなりヒューリスティックな印象があったので今後もっと改善されていくかもしれません。

また、プログラム出力をさせる際の工夫として、完全にゼロからコードを考えさせるのではなく、その問題に特化したテンプレートは与えてあげて、ヒューリスティクスアルゴリズムのコアになる部分 (下図の priority, heuristic) だけを考えさせるようにしているようです。

AlphaGeometry

“Solving olympiad geometry without human demonstrations”
https://deepmind.google/discover/blog/alphageometry-an-olympiad-level-ai-system-for-geometry/
https://github.com/google-deepmind/alphageometry

こちらもDeepmindからNature論文です。

国際数学オリンピック(IMO)の幾何問題を30問中25問解くことができたようです。

Neuro Symbolic approachを用いており、幾何問題を機械が扱うシンボルに変換しながら解いていくようです。ここで使われているLanguage modelは、専用のデータセットを1億件用意して学習したと書かれており、汎用的なLLMから出発したわけではなく、最初から本タスク専用に作成したモデルを用いていそうです。

Figure showing the process of AlphaGeometry solving a simple problem.

まとめ

LLMを用いることで、複雑な問題に対する検討の際に自動で小タスクに分ける(経路を分解する)ことができるようになり [CoT]、必要に応じて外部から情報を取ってくる・行動を起こしてその変化を見るといったこともできます [ReAct, AutoGPT, Voyager]。探索の過程で得られた知見を保持しておき、将来”Skill” などとして有効活用することもできたり [Voyager]、Brush upさせながら改善していくこともできます [FunSearch]。探索過程の結果を学習データとして、LLM自分自身をそのタスクに特化したスペシャリストにしていくこともできます [Rest^EM]。

一方で、REST^EM、FunSearch、AlphaGeometryは全て、解の出力後にその解の良さ具合(reward)をすぐに評価できることを前提としています。そのためか、現時点では数学・コーディングの問題に適用範囲がとどまっているようです。

LLMを用いることで、入力・出力が定型でないようなタスクが扱いやすくなったため、探索対象として考えられるアプリケーションはまだまだたくさんあると思います。今後もこの領域で面白い成果が出てきそうで楽しみです。

仮想通貨を投資的側面から考えてみる

仮想通貨市場は投機か投資か?

最近ビットコインの値上がりがすごいですね。

ニュースでもビットコインなどの仮想通貨に関するのニュースを見ない日はないといってもいいくらい、毎日記事にあがっており、それを受けて自分の(結構な額の)資金をトレードして、その結果をブログに公表している人も多く見るようになってきました。

下の図はここ1年のビットコインの価格チャートです。2017年2月には11万円だったのが今は120万円を突破しています。ここ10カ月で価格が10倍以上に跳ね上がるというかなり異常とも思える上がり方ですよね。

https://bitflyer.jp/ja-jp/bitcoin-chartより

ここまで上がるなら自分も買っておけば将来得をするのでは、、、と思うのは自然な発想だと思います。

ただ一方で、周りの人と話をすると

  • 「今のビットコインは投機的な資金だけで動いている」
  • 「ビットコインは今バブルだからいつか絶対暴落する、怖くて今は手が出せない」
  • 「ビットコインはただのデジタル通貨で実態が伴っていない」
  • 「仮想通貨なんて正しい価格というものが存在しない、ただのギャンブルでしょ」

と、投資=ファンダメンタルズ で価格が上がっているのではなく、ギャンブル的要素で価格相場が動いている。というような意見をよく聞きます。

実際、今の市場はかなり “投機” 的目的での資金流入・流出があり間違いではないと思うのですが、自分は”投資” 的基準でビットコインおよびその他アルトコインを買ってもいいのではないかなと思っている方なので、その考えを共有してみたいなと思います。

ちなみに「投資」と「投機」の言葉の違いは、、以下をご参考ください(めんどくさいので他の記事に説明をお任せします)

投資=資本に投じる

投資というのは生産的な手段のためにお金を出し、それを何らかの形で運用してもらうことでその果実を受け取ると言うものになります。

投機=機会に投じる

投機における「機会=チャンス」というのは単純には短期的な値動きを指すのが一般的です。株や為替などにおける短期的な価格変動をチャンスとして捉えて取引をすることが投機となります。

http://money-magazine.org/%E6%8A%95%E8%B3%87%E3%81%A8%E6%8A%95%E6%A9%9F%E3%81%AE%E9%81%95%E3%81%84%E3%82%92%E7%90%86%E8%A7%A3%E3%81%99%E3%82%8B/より

http://money-bu-jpx.com/news/infographic/article004555/ より

仮想通貨の価格はなにで決まるか?

ここからの見解は完全に個人的な見解です。今まで経済学を専攻していたわけでもなければ、金融職に就いているわけでもなく、また仮想通貨・ブロックチェーンの開発に携わったり、研究しているわけでもないので、ここに書かれていることはまったく的を得ていなかったり、すでにどこかで書かれていることなのかもしれません。

価格の決定理論

古典的にミクロ経済学では、価格の決定などは研究がされています。自由経済では、需要と供給の量により価格が自動で調整されて最適なところへ向かうという「神の見えざる手」などは有名ですね。

現在では株や派生商品(デリバティブ)などの金融商品が生まれましたが、ブラック・ショールズによる方程式によりオプション価格を決定できるようになるなど、金融市場は数学・物理学の知識も入りながら経済学により理論が提案されその理論に従って運用がなされてきました。

しかし、仮想通貨に関しては、1コインが何に相当するという物との交換による基準もなければ、信用自体、これまで行われてきた絶対的立場・中央機関(国など)に任せるのではなく、システムにより構築するというこれまでの通貨とは性質が異なるものです。”適性な価格”というものがなになのか、自分の知っている限りではまだきちんと理論だてられていないです。

ではビットコインなどの仮想通貨の価格が上下するのは、何も根拠がなくただのゲームのように決まるのかというとそうでもないと思っています。

仮想通貨の取引が行われるようになると、その取引高に応じて、企業が事業として参入・サービスが生まれてくると感じています。

仮想通貨エコシステムの現状

仮想通貨口座・販売所・取引所サービス

自分が仮想通貨の口座を開いてみたのはここ1か月の最近のことですが、既にかなり仮想通貨を取り巻くインフラが整備されてきているということを知りました。

仮想通貨を売買できる販売所・取引所はすでにかなりの数あります。国内で有名なのは CoincheckZaifBitFlyer, などでしょうか(他にもたくさんあります)。GMO もコイン事業に参入するなど、今後もさらに増えていくものと思われます。

  • 口座作成の手続きが驚くくらい簡単
    • どのくらい簡単かというと例えばCoincheckの場合Facebookのアカウントで作るボタン押せばもうアカウント作成は終了です。銀行のようにどこかに行く必要もなく、ネットを開いてアカウント作るだけ。ほんとに1分もかかりません。
    • 銀行口座から入金したり、仮想通貨の売買を行うためには本人確認が必要となりますが、それもマイナンバーカードの写真を撮ってアップロードするだけくらいだったような気がします。
  • 仮想通貨の売買はいつでもでき、一瞬で完了する。
    • これはFXや先物などの取引をしている人にとっては特に驚くことではないかもしれませんが、口座に入金後、仮想通貨を買いたいと思ったらその額を打ち込んでボタンをクリックすると次の瞬間には日本円の資金が仮想通貨に移動しています。
  • 仮想通貨の送金なども簡単
    • 試しに、Coincheckで買ったビットコインをZaifへ送金してみました。
      (Zaifでもビットコイン買えるので送金と手数料取られてしまうだけです。今回は実験ということでやってみました。)
      1. 受け取り側口座(Zaif)で、ビットコインを受け取る用のアドレスを確認する
      2. 送金側口座(Coincheck)でビットコインを購入しておく
      3. 送金側口座(Coincheck)から受け取り側口座のアドレスに対して、金額を指定して送金指示をする。

これだけです。銀行振込の口座番号がアドレスという文字列に変わるだけです。銀行名・支店番号・口座番号など複数の項目を入力する必要がなく、アドレスという一つの文字列だけで通貨のやり取りができるという意味で、銀行振込よりも必要なステップが少ないです。

こういった瞬時にデジタル通貨が移動するというUX (User experience)は、振込先の確認や暗証番号の入力のためにカードを探すなどといった作業が毎回求められる銀行のオンラインバンキングとは違うもので、新鮮に感じました。(もちろん、誤送金などのトラブルは出てくるんだろうなと思います。)

まだ仮想通貨をやり取りしたことのない方は、口座作って数千円とか1万円でもいいので入金して仮想通貨買ってみるだけでもしてみると印象が変わるのではないかなと思います。

銀行のオンラインバンキングシステム(〇〇ダイレクトなど)と、すでに引けを取らないシステムが出来上がっていて、見やすいUIでお金をやり取りできる環境が整いつつあることに気付きました。

法整備

そして日本にしては珍しく、法整備も現時点できちんと進められてきているように感じます。

2017年4月には資金決済法が改正され、「仮想通貨」は法律で定義されています。また、仮想通貨で得られた所得は雑所得として扱われ課税対象となるという見解も示されています。

上記の仮想通貨取引をおこなう企業に対しても、金融庁は”仮想通貨交換業者” という形で登録されているようです。銀行同様の法整備が進められてきています。

仮想通貨の取引額による仮想通貨エコシステムへの影響

現在仮想通貨はビットコインだけではなく、ビットコインキャッシュ・イーサリアム・ネム・モナなど様々な通貨が出てきています。これらの仮想通貨(の取引量)が育っていくにあたって、以下のようなフェーズをたどるのではないかなと考えます

イノベーター理論と勝手に対応付けしてみます。イノベーター理論の説明は以下参照

1.新しい仮想通貨がプログラムとして開発され、リリースされる

  参入層:イノベーター
   技術や思想に対して共感している人からの資金の流入
   新しさに対して

2.販売所など、仮想通貨口座サービスで取り扱われ始める

  参入層:アーリーアダプターによる資金の流入
    投機的資金の流入

やり取り可能通貨としてプログラミングができない一般の人でも扱えるようになってくる。
マイナーなども参入してきて、ブロックチェーンを運用していくためのシステムも整ってくる段階と推測。

ある程度の額取引がされるようになってくれば、仮想通貨のサービス会社が取り扱うようになります。そうすると、プログラミングを通すことなく仮想通貨が買えるようになるため、新しい物好きな人や投機目的の人たちが仮想通貨をやり取りするようになる。

ただしこの段階ではまだ出来高はそれほど大きくないため、販売所経由による販売となります。その場合、仮想通貨の購入に大きくスプレッドを取られてのやり取りがされたり、価格も連続的に変化することは難しく窓を開けたりするなど、まだ安定してない。

3.取引所で扱われる

  参入層:アーリーマジョリティの前半くらい
   投機的資金追加流入

仮想通貨の中でも、他の仮想通貨を売買する際に使う基軸通貨としての使用も可能になってくる。

多くの人が取引を行うようになってくると、仮想通貨口座サービス内で取引を成立させることができるようになり、取引所経由でのやり取りが可能となります。取引所では販売所とは違い、その場の買う側と売る側の言い値で合意をとって価格が決定されながら動いていくようになり、一般的には販売所よりも手数料・スプレッドを抑えて取引が可能になります。

ここら辺まで来ると、基軸通貨として他のアルトコインとのやり取りができるようになり通貨間を(手数料をかなり抑えて)資金が行き来できるようになってきます。

(ここから先は将来の話)

4.先物など、既存の証券口座で扱われはじめる

  参入層:アーリーマジョリティ
   機関投資家も含めた投資的資金の流入

現在ビットコイン先物が上場するというニュースがあります。

ここまでくれば、資本と同等の扱い。

5.実際のサービスに広く普及し、使われる

  参入層:レイトマジョリティ

   投資的資金の追加流入

通貨の本来持つ役割である、財とのやり取りがメインとなるフェーズです。これがいつになるのかは将来の動向に注目です。ここまで行くと、仮想通貨に価値がないということは言えなくなり、価格の暴落は起きたとしても0になることはないでしょう。

将来は段階5はもっと早い段階から行われるようになってくると思います。

仮想通貨の取引額と価格を関連付けて理論だてる

アイデアだけ書いておきます。(勉強不足でこれ以上は発展させられない)

取引総額(毎時刻単位) C

取引総額に対する、サービス利用のための資金使用率  r

投機的な価値は C のみで決まるようなもの。

実際に使用される価値 V = C * r で、これが投資的な意味での通貨の価値。

R := 1/r とすると、C=VR で、

Rは、実際のサービスへの使用総額に対する取引総額(流通額)の倍率を表す。

CやRは通貨の思想や技術により変わる。また、時刻によっても変わる。

 ・よい技術が使われていれば(Transactionが早い、手数料が安いなど)、使用メリットが大きく相対的に、V=Crも大きくなる。

 ・通貨が目指す使用対象範囲
  これは株価と同じだろう、使われる業界ごとに安定度や成長度などが違いそれに応じて

仮想通貨を株価と対応付けるとするなら、Cが企業の時価総額、RがPERと対応づくような感じになるのだろうか。。Rはある程度業界水準のようなものがこれから決まってくるだろう。
一方で、AmazonはPERが例外的に多いなどの例もあるように、将来性のあると判断された通貨はRの値が大きく、Vが小さくてもCが大きくなるということは起こっていくと思う。(Bitcoinはまさにその段階か?)

仮想通貨の価格はこの取引総額を一つの重要因子としているだろう。

個人投資家だけでなく、法人の資金が流入してくるようになれば、株価をきちんと計算する証券アナリストなどの職があるように、仮想通貨の価格もこれから理論だてて説明されてくることになると思います。

相転移

H2Oという一つの物質が常温では水だが、温度を上げていくと100℃を境に水蒸気となり急に性質が変わる。同じように温度を下げていくと0℃で氷となり急に性質が変わる。

金融市場でも上昇トレンドから、エネルギーがたまりすぎるとある瞬間一気にバブルがはじけるがこれも相転移の一種だと思う。

何が言いたいかというと、価格であっても連続的に安定して変化するだけではなく、あるイベントを境に一気にその価値が上がる・下がるということが起こる。

上で言う仮想通貨エコシステムもそう。最初は小さく取引が行われているだけかもしれないが、ある程度取引高が増えたりしたあとに、それを取り巻くサービスが導入されると、利便性が上がって一気に価値が上がると思う。この、サービスをどこまで導入するか(導入コスト) VS サービスを導入した際の既存サービスから良くなる部分のせめぎあいで仮想通貨の取引総額が決まっていくのかなと感じる。

他にも下記の概念って結局相転移だと思う。金融がやっているのはその部分を”価格”という見える指標としてリスクなどを扱っていくということだと思う。

  • いつまで既存システムで運用し、いつ新規システムに移るのが良いか?
  • SNSの新陳代謝:いつまでMixi使い、いつFacebookに移るか?いつInstagramにうつるか?
  • いつまで大企業の既存サービスを買い、いつベンチャー企業の新規サービスに移るのか?
  • いつまでクレカをつかい、いつからデジタル通貨に移るのか?
  • いつまでBitcoin使い、いつから次の通貨に移るのか?

結局サービスの新陳代謝をよりスムーズに行えるような仕組みが提供されてきているということだと思う。

今まで国の法定通貨は絶対的な存在として運用されていたものだけど、仮想通貨はどんどん提案されているので新陳代謝が行われるようになるのだろうか。

新陳代謝ではないかな?

とはいえ、一般の人が資金をどんどん新規通貨に鞍替えしていくというのはできないし、現実的ではない。現状ではハードフォークを行い、既存通貨と新規通貨どちらも同じ通貨量がユーザーに行くようになっている。。ここら辺も経済理論が出てくる or 既にあるんじゃないかな。

結局、仮想通貨により何が良くなるのか

現実的にすでに起こっているメリット

取引手数料のコストダウン

1.クレジットカードなどの代替 

によれば、国内の決済市場は現在58兆円、このうちの3%程度(数兆円)は手数料としてクレジットカード会社に支払われていることになる。この部分は仮想通貨の導入によって今後変わってくるのではないだろうか。

お店が支払う加盟店手数料の額は、クレジットカードの利用額に対する手数料率によって算出されます。

手数料率はカード会社によっても若干異なりますが、加盟店の業種によってかなり変わってきます。回収リスクの高い業種では高めに、粗利の低い業種では低めに設定されるのが一般的です。

飲食店:4~7%
小売店、専門店:3~5%
百貨店:2~3%
家電量販店、コンビニエンスストア:1~1.5%

https://www.cloudpayment.co.jp/blog/4214/より

ビックカメラなどではすでにビットコインでの決済が導入されているが、まだ便利に使えるというほどの状況までは達していないようだ。

海外への送金など 仮想通貨には国内・海外といった概念はなく、常に一定の手数料で行える

ただ、現状Bitcoinでは、Coin checkで送金手数料0.005 btc かかります(2017.12.03のレートで600円程度)。これでは手数料格安というにはまだ遠いかなという気がします。ただし、多分送金額によらない手数料なので、大金を移動したい際には現状十分機能するのかもしれません。

Bitcoinはアルゴリズムの関係上(プルーフオブワークにかかるコストが高い)、手数料を下げるのは難しいので、そこはほかの仮想通貨(アルゴリズム)によって、手数料が下がっていくことを期待します。

2.銀行の仲介を介す必要のない資金移動

  • 銀行の使いづらいシステムとは違い24時間365日稼働し続けるシステム。
    今までオンラインバンキングで”システムの動作時間外です”という表示を何度見たことか。。。こういったことは時々刻々とマイナーがTransaction処理の確認を行っているブロックチェーンでは存在しない。
  • 取引時間外などで取引ができなくなったり手数料が上がるということもない。
  • 簡単に口座を持てる(本人確認など必要なく口座が持ててしまう。)ようになる。
    煩雑な手続きをして口座を作っていたが、仮想通貨口座ではそういった無駄な事務処理・書類作業は存在しない。

その他、これから動向が大きくなってくる動向

3.IPOの代わりに、ICOによる資金調達

証券取引所を仲介しない、煩雑な手続きをスキップした資金調達

投資側としては、提示される資料がこれまで以上に不確かな状態で判断をしなければならなくなるが、その分スピードを重視し、仲介手数料を抑えた資金調達が可能になる

4.その他

  • 保険・ギャンブルなどの確率的現象・賭け市場に対するリスク分散の仲介手数料削減
  • あらゆる”契約”に際して、ブロックチェーンを導入した信頼性担保が検討される

これだけの潜在的な可能性がある仮想通貨、ビットコインの価格は急騰していますが、一方でまだその市場規模はほかの市場規模と比べればまだまだ小さいです。

The Bitcoin Economy, in Perspective
https://howmuch.net/articles/worlds-money-in-perspective より

投機的理由だけではなく、投資的側面から、仮想通貨の価格決定のための理論はこれからどんどん研究されてくるのでしょう。

社会人からはじめる機械学習勉強 Week 28 – 最終週 内定

2016/7/4~7/10

2016年1月に始めた機械学習の勉強。独学で勉強してSeRanetをリリースし、転職活動。面接を終えて残すは結果を待つのみ。。。

内定

最終面接から6日後、待ちに待ってようやく面接結果のメールがとどいた。結果は内定!

現職との日程調整も行って、転職先の入社日は2016/12/1ということになった。

総括

今まで八方美人でいろいろなことに興味がむいていて何か一つのことに専門性を磨くための決心がついていなかった。

機械学習は本当に生涯を賭けてやりたいと確信し、独学で勉強しはじめた。

もともと物理系で大学・大学院を卒業、機械学習の研究をしていたわけではなく、ソフトウェアのプログラミングも本格的に始めたのは社会人になってからという僕でも、会社に通いながらの勉強、7か月たち、とうとう目標達成してやりたいことをやるための転職を成し遂げることができた。

付録:SeRanetの改良案

転職活動は終了したが、SeRanetプロジェクトは自分の中ではまだ最終系まで行っていない。Globalなコンテキスト(このピクセル部分は草原の画像である、など)を、考慮したうえでの超解像を行うことによってより精度が上がると考えていて、そこまではやってみたい。

そのためにはSemantic segmentationが使えそうだ。Semantic segmentationの結果をFusionして組み合わせることで、精度の高い超改造ソフトができると思う。これでSOTAをとれるんじゃないかと思っているので試してみたい。

社会人からはじめる機械学習勉強 Week 27 – 帰国・面接

2016/7/4~7/10

2016年1月に始めた機械学習の勉強。独学で勉強してSeRanetをリリースし、ついに転職面接までたどりついた。

今週は友達の結婚式のために日本に帰国する予定があり、ちょうどマレーシアの連休であるHari Rayaであったため、1週間日本に滞在していた。

面接

1次面接で自己紹介をした後、こちらの開発してきたSeRanetなどに関して質問があった。質問が実装の詳細にわたっていて、わざわざここまで見てくれているのかと感動した。そのあともパフォーマンスをさらに良くするためにどういったことができるかのアイデア共有やアドバイスをもらえて、面接がとても楽しかったことを覚えている。こういったエンジニアと共に働けたら刺激を受けながら成長できると確信し、より入社希望度が高まった。

結局面接は合計3回あった。

やることはやったので、あとは結果を待つのみ。ということでマレーシアに戻る。

社会人からはじめる機械学習勉強 Week 26 – 転職活動

2016/6/27~7/3

7月には転職面接を受けると締め切り設定を課して、この締め切りに合わせてアプリ開発を行ってきた。少し無理やりに近い日程だったけど、SeRanetのリリースは達成し、とうとう実際に転職希望メールを送った。

本当はもっとパフォーマンスよくして、State of the artを超すレベルの超解像ソフトを作成したかったのだけど、設定した締め切りに間に合わなかった。このままずるずると開発を延長しているときりがなくなるので、割り切ってこの段階で提出することにした。

転職活動

転職活動とはいっても、転職紹介サイトには登録せず、本命1社のみにメール送っただけなので、そこまでたいしたことはしていない。会社に通常勤務して、合間の時間や家でメールしてただけ。

第一転職希望先

メールの返信が来て書類選考は通過。日本に帰国している7/5に面接を設定してもらった。

ヘッドハンティング

これは結構びっくりしたのだけど、SeRanetのSlideshareを公開してすぐ(1日後)に、ヘッドハンティング会社から機械学習に取り組んでいる企業を紹介したいとメールがきた。

この時点でSeRanetのSlideShareの内容や人気度を見て判断したわけではないと思うので、完全に「機械学習分野に精通していそうな人材」にヒットする人に手あたり次第連絡を送っているのではないかと思うのだけれど、それだけDeep learningの分野での人材確保がホットであるということがわかって面白かった。

結局このヘッドハンティング会社から1社紹介してもらうことになったのだけど、結局面接の日程が合わずに先に第一転職希望先が決まってしまったので、こちらの面接はしなかった。

社会人からはじめる機械学習勉強 Week 25 – SeRanet公開

2016/6/20~6/26

7月には転職面接を受けると締め切り設定を課した。
この締め切りまでに成果としてChainerでのSRCNN実装を終えたい。
→とりあえず完成はした!!が、Performanceがよくなければ意味がない。パフォーマンスよければ自信でるんだけど。

転職活動

結局SeRanetはぎりぎりで完成という形だったので、機械学習を行っている会社をたくさん調べ上げる時間は取れず、特に気になっていた1社にのみ直接メールを送ることにした。転職紹介サイトなどへの登録もせず。

SRCNNの公開


inference, compareの実装
githubの公開はしたけど、まだREADME.mdも書いていないし正式リリースにはなっていない状況。infrerence, compareの実装はOK.


トレーニングにあまりに時間かかるのであんま進んでいない。CRBMがうまく機能していないような気がする。どうやったらgabor Filter得られるのだろう。。。


転職活動を真剣に進めるため、休みとって一日やった。本当は今日までに転職希望先にメール出すことを目標としていたけど、できなかった。理由は志望動機、履歴書などの作成にももう少し時間とりたかったため。

SeRanetに関しては以下の二つを終了させる必要がある。
1.github公開 → DONE。README.mdも書き終わり、今日を正式公開としよう。 PEXELSから写真Distributionの許可もとった。
2.Slideshare → パワポあと少しまで行ったけどまだ終わってない。。

木 ついに転職希望のメールを出す。
家で開発成果、志望動機、履歴書、およびパワポも完成させてSlideshareにて公開。その後転職希望先にメール送った。夜2時すぎ。


これからはcNote充実に費やしたいかな。


Slideshare英語訳もしたい。


BBQパーティーに時間とられてほぼ何も進められなかった。。。
Topcoder 12時間勘違いしてて参加逃した。。。

社会人からはじめる機械学習勉強 Week 24 – SeRanet実装

2016/6/13~6/19

7月には転職面接を受けると締め切り設定を課した。
この締め切りまでに成果としてChainerでのSRCNN実装を終えたい。
→とりあえず完成はした!!が、Performanceがよくなければ意味がない。パフォーマンスよければ自信でるんだけど。

SRCNNの実装、パフォーマンスチェック

waifu2xの差別化としてRGBでTrainingさせることに決定。
RGBのコードを実装。その際にYonlyのコード内に重大なBugがあったことが発覚。。Y_dataが正しくなかった。今までのTrainingは全部無駄だった、、。

プロコンは2章巻末問題を1日1問解いていくことに。

SinraMediumをRGBでTraining。1日くらいかかった。

SinraMediumとwaifu2xのPerformance比較。大体の写真では大差なかった。
が、一部の写真でwaifu2xではJPEG Noiseがのっていて、その部分はSinraMediumの方がよさそう

Sharpnessはどちらもあまり良くなかったのでこの部分もっと改良できればすごいものになるなあ、と思う。

chainer imagenetのサンプルコードをcifar-10のデータを使って無理やり回してみた。
train.py参考にすべき、とてもよい。

Chainerでmlpconv Layerが実装されていたので、その元論文読んだ。Network in Network MLPと言っているけれど、これはただ1×1のConvolutional layer重ねたのと同じ計算しているだけであって、そんなに面白くないと思う。