ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

Session.Run () するTensorFlowは、どうも古いらしい

2019-06-18 09:09:24 | ネットワーク
Keras風に書くのが、イマドキの書き方?

【初心者〜中級者向け】Tutorial実装で確認するTensorFlow入門
https://liberal-arts-beginners.connpass.com/event/134776/


を聞いてきたので、メモメモ




End-to-Endの機械学習 入力と出力を意識していればよい。

TensorFlowtyu-toriaru
https://www.tensorflow.org/tutorials

チュートリアルだけでもいろいろ

MNIST
tf.keras.Sequential
基本的なモデル設計法(層の構成:隠れそう、出力)
→層を積み重ねていく
 Flatten 一次元にする
 Dense 層を追加(512,activation=tf.nn.relu)
 Dropout おとす
 Dense 層を追加(10,activation=tf.nn.relu)→0~9で10こ

model.compile
 具体的な学習法
 adam
  引数 オプティマイザ―:勾配降下法の設定
   モーメンタム
   RMSprop
   adam(上2つのいいとこどり)
 評価方法の指定ができる(sklearnにはない)
 クロスエントロピー:分類関数に使う誤差関数(損失関数)
  回帰:2乗誤差関数
  分類:クロスエントロピー
  メトリクス:アキュラしー

model.fit:学習

model.evaluate 評価

■画像分類
TensorFlowhub
ILSVRC:ResNet

モデルの軽量化
・Neural ODE(常微分方程式)ResNetと同じくらいの精度パラメータが少ない
・Mobile Net畳み込みを分解、空間とチャンネル

・TensorFlow Hub:学習が済んだものを推論できる

■転移学習
・人間のアナロジー
・重みの初期値:乱数で決める
  NN,DLは重みの初期値を定める:初期値の決め方をうまく決めると精度が上がる
  事前学習(なぜうまくいくかは不明)
 入力2こ隠れそう3つ出力1個
  NN,DLを
 入力と出力  
入力と出力のサイズをおなじくする
 これを訓練するとき、入力データを実測値にする
  →(X,X)にする
 入力で入力を回帰することを、オートエンコーダーという(自己符号化器)

訓練が終わったら、
 1層目重みを取り出す
 はじめのものの、一層目の初期値にする

GAN(じぇねれーてぃぶ あどばたいず ねっとわーく)
 GANのタスク:画像生成
 登場人物
  ジェネレーター:生成
  ディスクりみねーたー:判別
(1)ジェネレーターが画像を作
(2)作られた画像と人間がとった画像をディス栗見ネーターに渡す
(3)ディス栗見ネーターは画像が作りもの化本物か判断
(4)結果を踏まえて、ジェネレーター更新

Conditional GAN(Pix to Pixをやるために)
・one hot vector
 所属クラスの表現:5クラス データX1はクラス2→属しているクラスだけ1にする

pix2pix
https://github.com/tensorflow/tensorflow/blob/r1.13/tensorflow/contrib/eager/python/examples/pix2pix/pix2pix_eager.ipynb


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Shorのアルゴリズムがわかるには、量子フーリエ変換の理解が必要で・・・

2019-06-17 09:20:49 | ネットワーク
量子フーリエ変換を理解するため、位相推定アルゴリズムを聞いてきた?・・・
気がするのでメモメモ

6月14日に
基礎から応用やトレンドまで学ぶ量子コンピューティング入門セミナー #4
https://liberal-arts-for-tech.connpass.com/event/131884/

を聞いてきた!内容メモメモ




今日の教材
https://github.com/kyamaz/openql-notes/tree/master/docs/20190614

・自己紹介
・今日のゴール
 Groverのアルゴリズム
 量子テレポーテーション
 アダマールテスト、量子フーリエ変換など
 Shorのアルゴリズム

・量子コンピューターとは
 物理的な量子現象を計算のための情報として扱う計算機
  アニーリング方式
  ゲート方式
 →ものも、いろいろある
  超電導、、イオントラッパ、だいやもんど・・・

量子コンピューターの分類
  アニーリング方式:組み合わせ最適化だけ
  ゲート方式:古典コンピューターの上位互換

量子コンピューターのソフトウェアライブラリ
→おすすめSymPy
SymPyをインストール
pip install sympy

量子計算は
sympy.physics.quantum

from sympy import *
from sympy.physics.quantum import *
from sympy.physics.quantum.qubit import Qubit, QubitBra, measure_all, measure_all_oneshot,measure_partial
from sympy.physics.quantum.gate import H,X,Y,Z,S,T,CPHASE,CNOT,SWAP,UGate,CGateS,gate_simp
from sympy.physics.quantum.gate import IdentityGate as _I
from sympy.physics.quantum.qft import *
from sympy.printing.dot import dotprint
な風に宣言

基本は同じ。環境をスイッチする

・量子コンピューターの裏側
 →量子力学に関係するけど・・・いらない
  ただ、シュレーディンガー方程式を解いていく過程でできあがる
   →ユニタリの積で変わっていく:量子回路図で表す
 →量子ゲート回路図が大事!

「量子計算は、複素行列の演算として扱えます!」

手順はだいたい決まっています。
1.量子ビットを準備、初期化
2、量子計算をユニタリ行列
3.計算
4.測定→とれる値の確率が決まる
  
from sympy.physics.quantum.gate import H,X,Y,Z,S,T,CPHASE,CNOT,SWAP,UGate,CGateS,gate_simp
のH→あだマールのH

計算qapply

係数の2乗が期待値

・量子ビット=複素ベクトル
 ブロッホ球→縦ベクトル
・2量子ビット

・ユニタリ
 あるところからあるところへ
 この積になる

・射影測定
 →いまはZ基底

・重ね合わせ計算

・エンタングルメント:普通のコンピューターで表現できない

・量子アルゴリズム
 大規模で高精度が前提→いまやっても、正しい答えは出ません・・・

・トレンドは・・・
 NISQ世代量子コンピューター
 量子・古典ハイブリッド

・3つの潮流
 量子アルゴリズムの開発
 量子・古典ハイブリッド
 スパコンよりすごいんだ!を一生懸命・・・

・Groverのアルゴリズム
 あたりを位相反転
 マーキングしたところがでる

・量子テレポーテーション
 アリスが持っている状態をボブに送る

・位相推定アルゴリズムに向けて
 ブロッホ球:位相差を調べる(どれくらいの角度動いたか)
 →調べる方法:あだまーるテスト(位相を取り出せる)
   →あだまーるではさむ
 これを応用する。
 →量子状態の物理量Uの実部を求める
 ちょっとかえると(だがーをかける)
 →量子状態の物理量Uの虚部が出てくる

・特殊ケース
 SWAPテスト:2つの調子ビットの状態の内積を求めるのに便利
 →コントロールスワップゲートをつくる(Toffoli)
  →CNOT3つでSWAPする

・位相推定アルゴリズム
 コントロールユニタリ
  0のときなにもしない、1のとき、ユニタリをかける
 入れ替えたい
 行列は入れ替えができない→固有値を考えて、対角か
 →固有値が推定できる!

 さらに精度をあげる:コントロールユニタリを2乗する
  1ビット目がわかり、逆量子フーリエ変換する
 →指数的に精度が上がる

・そもそも、離散フーリエ変換ありますよね。
 →これを行列にする:ユニタリ行列にできる
 →量子フーリエ変換は、波動関数の振幅の離散フーリエ変換の量子計算での実装

・デコンポーズすると、QFTのなかみがわかる
 Tを作らないといけない:すごいたいへん(長い)
 →つくるのは、難しい・・・

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

年金2000万円不足だけど・・・

2019-06-16 21:00:35 | ネットワーク
「年金払え」デモに2000人=政府に怒りの声-東京
年金2000万円不足、話が大きくなる一方、どうも違うんではないかい?という話も・・・

NHKのニュース番組でもやってたんだけど、どうも出費が大きいみたい。

「老後2,000万円不足問題」で話題の報告書を読んでみた
https://www.lizardk.net/2019/06/nenkin.html

は報告書を読んだ人の話が載っているみたいなので、URLをメモメモしてみました。

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

日本の船を狙ったのかなあ?パナマ国旗掲げてるのに?

2019-06-15 01:33:04 | そのほか
タンカー攻撃、野党は「首相の仲介外交が失敗」と批判

っていうけど、イランがやったのかどうかはさておき(わかんないから)
本当に、日本をねらったのかなあ?

機雷攻撃を否定=「乗組員が飛来物目撃」-タンカー運航の国華産業
によると、パナマ国旗を掲げて航行していたとのこと。

たまたま、日本の船だったんじゃないの?

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

市東製作所をチェック!

2019-06-14 00:47:52 | そのほか
なんで、あのパン屋さんが最下位なんだろう?

いいかんじのパン屋さんだった。行きたかったので。メモメモ
https://tabelog.com/tokyo/A1324/A132404/13228786/

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

「老後資金2000万円」については、国会で集中審議してほしいんだけど・・・

2019-06-13 12:01:49 | そのほか
「もりかけ問題?」とかいうのは、もうどうでもよくて
国会の審議とか、全く関心なかったんだけど・・・

「老後資金2000万円」については、興味しんしん。
国会でぜひ、集中審議して、テレビもこの算出根拠を説明してほしいんだけど・・・

金融庁「老後資金2000万円」報告書に目新しい事実はない
http://wedge.ismedia.jp/articles/-/16494

審議してほしいのは、野党のいっているような、
いってきたことと違うという話ではなく、

ほんとうに2000万でたりるの?
これは平均値?

とか、そういうこと。
いや、2000万ひつようといわれて、いかるというより
やっぱりな!というのが、実感!!


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

TortoiseSVNで、リポジトリ作ってから、編集、競合解消するまで

2019-06-12 03:13:31 | Weblog
TortoiseSVNを使って、競合を解消する方法について、良くわからなくなるので、リポジトリを作ってから編集するまでと一緒に、手順をまとめておく。
(なお、今回書いてあるのは、あくまでも原則)

■前提
・TortoiseSVNはインストールされている
・日本語化はOKだけど、他はデフォルト設定
  →マージを「外部」のものにしている場合、競合の画面でやり方が違う

■手順

【リポジトリ(集中管理する対象)ごとに1回(=はじめに)】
1.まずは、集中管理するリポジトリを作成する

【作業者ごとに、リポジトリごとに1回】
2.各自編集者が、フォルダを用意して、自分の作業場所を用意する
   →SVNチェックアウト

【作業者の日々の作業】
3.編集してコミット
   →SVN更新、編集、コミット

【ないに越したことはないけど、起っちゃったら・・・】
4.他の場所で先に更新してると競合する。その場合の解消法




■1.まずは、集中管理するリポジトリを作成する

1-1.自分でリポジトリ用のフォルダを用意する
  今、「リポジトリ」というフォルダを作った。ここで集中管理する

1-2.「ここにリポジトリを作成」する
  上記フォルダを右クリック、TortoiseSVN→ここにリポジトリを作成


 できると、こんなかんじになる。


OKをクリック

これで、リポジトリはできている

この作業は、リポジトリ(集中管理する対象)ごとに1回(=はじめに)すればよい
(作業者が何人いても)




■2.各自編集者が、フォルダを用意して、自分の作業場所を用意する
 具体的には、フォルダを作成して、チェックアウトする。
 今、AさんとBさんがいて、それぞれ、Aさん、Bさんというフォルダを作って、
 そこで作業するものとする。ここではAさんの作業を取り上げる
 (Bさんも全く同じ作業になる)

2-1 まずは、自分の作業用フォルダを作成する
 ここでは「Aさん」というフォルダを作った。
 リポジトリと同じフォルダにいるけど、ふつうはそんなことはなく、
 サーバーが違うのが普通。

2-2 チェックアウトする
 作業フォルダ(この例だとAさん)を右クリック、「SVNチェックアウト」を選択

 出てきたダイアログで、

リポジトリのURLを入れて「OK」

これで作業フォルダにリポジトリ内にある最新のファイルが落ちてくる
この作業は、各作業者ごとに、リポジトリごとに1回(=はじめに)する。




■3.編集してコミット

 日々の作業は、この繰り返しになる。

3-1.まず、作業場所を更新する
 他人が修正しているかもしれないので、それを反映させるため、作業開始や朝とか
 適当なところで自分の作業場所を更新する(自分が更新してなくても)。
 これをしないと、あとで記述する「競合」が起こる
(いや、しても起こるときは起こるんだけど・・、減らせる・・・かな)

 更新はフォルダを右クリック「SVN更新」を選択


3-2 編集する
 好きなように、好きなエディタとか使って、編集して、保存してください。
 ここでは、こんな感じに編集したものとする。

 この段階では、保存しても、自分の作業フォルダにあるファイルが更新されるだけで
 リポジトリの中は更新されていない。

3-3 コミット
 リポジトリの中も更新して、作業場所のファイルと同じものにする(同期する)
 ために、コミットを行う。

 編集したファイル、または編集したファイルが存在するフォルダを右クリック
 ここでは、フォルダをクリックしている。

 「SVNコミット」をクリックすると、以下のダイアログがでる。

 上にコメントを書く。好きに書いていい(後でログから検索できる)
 下にコミットする対象が出てくる。
   ファイルを選択した場合にはそのファイル
   フォルダを選択した場合には、フォルダの中にあるファイル
     (サブフォルダ内のフォルダも含む※)
 コミット(リポジトリに格納)したいファイルをチェックして、OKをクリック。

ダイアログが出てきて、うまくいけばコミットした旨のことが表示される。

※フォルダは再帰的に調べる。つまり、
 フォルダの中にフォルダがあって、その中にファイルがあれば、
    そのファイルも表示されるし、
 フォルダの中にフォルダがあってその中にフォルダがあって。そこにファイルがあれば、
    そのファイルも表示されるし、
 フォルダの中にフォルダがあってその中にフォルダがあって。その中にフォルダがあって…
という風に、フォルダが中にあれば、その中を同じように調べる。

※※ ここで下のコミットする一覧に「バージョン管理外」とあるが、こればファイルを作成してから、(右クリックで)追加の処理を行っていないファイル。ここではファイルを作った時、右クリックして「追加」とする処理を省略したため、ファイル管理外になっている。
デフォルトではファイル管理外のものはチェックされない(リポジトリに格納したい場合は自分でチェックを入れる)。なので、コンパイルしてできるオブジェクトファイルなどは、登録しないで、ずっと「バージョン管理外」にしておくこともある。




■4.他の場所で先に更新してると競合する。その場合の解消法

4-1.競合が起こるまで

 普段は、「3.編集してコミット」を繰り返せばよいが、例えば、Aさん、Bさんがいて、

 Aさん、Bさんとも同じ同じファイル・同じバージョンだったところから

 のように、Aさん、Bさんが別々の内容に編集して、

「Aさんがコミットした後に」Bさんがコミットすると

のように、まず、「作業コピーを更新しろ」と出て、OKすると

とくるので、「更新する」をクリックすると

となって、競合してることがわかる。競合が起きた

4-2.競合を解消するために編集する

ということで、競合が起きたファイルを編集する。

競合したファイルを右クリック、「TortoiseSVN」→「競合を編集」を選択

こんな画面が出てくる

選ぶほうを右クリックすると

その行の内容が決定される

で、すべての行を編集したら

「解決済みとみなす」

で、

なふうになって競合は解決する

※ここは、テキストエディタで編集してもOK。
テキストエディタで開くと、競合箇所に
<<<<<<<
みたいな印(本当は半角)があるので、それらを消して、正しい内容にして保存したら

競合したファイルを右クリック、「TortoiseSVN」→「解決する」を選択

最終的に、.mineとかリビジョンが付いたファイル(競合時にできる)が削除されていればOK

4-3 再度コミット

解決したら、再度コミット

今度はうまくいく

※Bさんの結果をAさんが取り込むには、更新しないといけない





  




  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

「空が青いから白をえらんだのです」だった!

2019-06-11 10:06:09 | そのほか
子供の名前はきめている
https://blog.goo.ne.jp/necesito/e/98b7f11fcb05eadf440abd67216066be


を見て、思い出した!(っつーか、忘れてる!つーか)

少年刑務所にはいっている人たちの詩集って、
なんだったっけ?買おうと思って、本家のブログに書いたことは覚えてる。
けど、本家がなくなってしまった・・・

やばい!・・・と思ったら

「少年院 詩集」

で検索かけただけで、一発で見つかった。

空が青いから白をえらんだのです ―奈良少年刑務所詩集―
https://www.amazon.co.jp/dp/4101352410


あらためて、ここにメモ。


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

機械学習でFizzBuzz!(決定木編)

2019-06-10 09:31:41 | Weblog
前に書いたやつ、「続き希望」の人がいたので、やってみた。

FizzBuzzを機械学習でやる方法概要
(決定木を使う場合:というか、一般的に・・)

前提:(シミュレーション)データを用意する
手順
1.データを機械学習させる→プログラム相当のモデルできる
2.出力するためのデータを用意する
3.モデルに2を読み込ませ、実行!

以下、詳細


■前提:(シミュレーション)データを用意する

1~100のFIZZBUZZに必要なデータを用意する
→番号(1~100)、3で割れるか(割れたら1)、5で割れるか(割れたら1)、FizzBuzzの結果
を書いたデータを用意し、それを20回コピー、1行目に表題をつけて、CSVファイルにして保存
こんなかんじ。

はじめのほう


おわりのほう(2000件分+1件(見出しで1行))

このファイルは、手作業で作ってもいいし、こんなかんじでプログラムに書いてもOK


■1.データを機械学習させる→プログラム相当のモデルできる
Rで上記データを読み込んだ後、決定木のモデルを作成。こんなかんじ

data<-read.csv("fizzbuzz.csv",header=TRUE)
library("rpart")
model<-rpart(kekka~.,data)


■2.出力するためのデータを用意する
読み込ませた1~100までのデータのうち、FizzBuzzの結果の行を削除したものを作成
こんなかんじ

mytest=data[1:100,1:3]



■3.モデルに2を読み込ませ、実行!
実行!こんなかんじ

predict(model,mytest)



結果

1のときは1,2のときは2、4のときは4うまくいってる。
(3はFizzなので、↓)

3はFizz5はBuzz15はFizzBizz
FizzBuzz部分もうまくいってる。

決定木をプロットしてみる。

plot(model)
text(model)


大丈夫かな・・・




  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

日大二中・高の定期演奏会、指揮者の具理然さんが、かっこいい!ニコニコ動画でも活動?

2019-06-09 22:16:47 | そのほか
日大二中・高の定期演奏会に行ってきました~
(って、いままで、このブログを見ていた人はなに?となってしまう
と思うけど、本家が廃止されたので、本家ネタをこっちに載せるようになったため。本家は、こんなノリなのだ)

いやいや、第二部の動きのある立奏も高校生の吹奏楽っぽくっていいんですけど、なんてったって第三部。
いきなり客席から演奏しだすパート演奏(っていうの?)とか、すごいです!2階席だと見えない!とおもったら、ちゃんと見えるところまで出てきてくれたり・・・(でも、あの選曲、ちょっと昔っぽかったけど・・・誰選曲?)
 栄光の架橋で、3年生を送り出すところなんて、すごかったっすよ(泣いてる人いたし・・・)

 さらにパンフレットは、3年生は顔写真入り!!

~もすごいんだけど、それよりなにより、指揮者の具理然さんの指揮がかっこいい!!
いや、指揮にメリハリがあって、ダイナミックなのだ!
この人すごすぎ!!と思って(それこそ)パンフレットみたら・・・

Lowland Jazz

なにそれ、と思って
Wikipedia
https://ja.wikipedia.org/wiki/Lowland_Jazz

みたら

Lowland Jazz(ローランドジャズ)は、『ジャズの敷居を低く』をキャッチコピーに活動している日本のビッグバンド(ジャズ・オーケストラ)である。2013年4月結成[1]。
概要[編集]
国立音楽大学出身の具理然が中心となり、国立音大のほか青山学院大学、洗足学園音楽大学のジャスオーケストラのメンバーなどが集まり結成 [2] 。
ニコニコ動画での活動を主としており、ボーカロイド楽曲をジャズアレンジカバーの投稿を行っている。

(上記太字はWikipediaから引用)

とのこと。おお、大注目ですね!

ちなみにHPは、
Lowland Jazz
https://lowlandjazz.jimdo.com/

らしい。




こんなかんじで、本家ネタ(今ぴゅーかー関連以外のネタ)がこれから
入ります。カテゴリーは「そのほか」を使って書く予定。

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

いつのまにか、楽天ブログが削除されていた(@_@!)

2019-06-09 17:44:31 | ネットワーク
今、本家のほうに、書き込もうとしたら、403になって、??
とおもって、本家のブログhttps://plaza.rakuten.co.jp/struts/を確認したら

削除されている(@_@!)

楽天ブログが削除されてしまう一番の理由とは
https://0yen-blog.com/sub_blog/rakutenblog/2812/


によると、著作権違反とかで削除されるそうな・・・
復活するのもめんどくさそうだし、
最近本家あんまり書かないから、

楽天ブログ(=本家)はやめて、
本家ネタ(つまりコンピューターに関係ないこと)
もこっちに書きますね!!


ということで、次の投稿は、コンピューターに関係ないネタになるはず

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

たとえば、FizzBuzzを機械学習でやらせたい場合って?

2019-06-09 08:59:49 | Weblog
アルゴリズムが明らかで、ふつうプログラミングでプログラムできるんだけど、
そこに機械学習を入れて、汎用的に作りたいときって、どうするの?

って、具体的に書いたほうが分かりやすいか・・・

たとえば、FizzBuzzを機械学習でやらせたい場合って?
どうするの?


・・・テストデータにシミュレーションデータいれるの?

・・・やってみればいいのか(^^;)


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

人が乗れるドローンって、スカートはいた女性が乗ったらどーなるの?

2019-06-08 07:47:01 | Weblog
・・・と思ったら、それを見越してか?ビキニ
(というかTバック)だった・・・

人が乗れるドローンが超進化!飛行も安定していて凄い!
https://9post.tv/44461

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Spring BootでWeb API

2019-06-07 09:58:58 | Weblog
あとでゆっくり見たいのでメモ

Spring BootでWeb APIを作ろう
Spring Bootで作るマイクロサービス 第4回
https://codezine.jp/article/detail/11546

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

RSAは、もはや安全ではないっていうけど・・・

2019-06-06 00:39:16 | ネットワーク
じゃあ、他のものはどうなの?量子暗号とか・・・は今一つよくわからなかった、

「暗号技術の現在 -- ポスト量子暗号への移行と量子暗号」
https://peatix.com/event/648891


を途中からメモメモ(遅れていったので、初めはとれていない)



日本の暗号 ぱーぷる暗号
→破られる Code Girls

アメリカ Code Talker→らばほいんであん:らばほ語に英語を訳す
→誰もわからない言語は暗号
暗号:コンピューターの走り

Colossus:こわされる(抹消)→いま検証しようとしてる:関係者死んでる

言語と暗号
・しゃんぽりあん ろぜったすとーん
・べひいすとん
→同じ技術
線文字B べんとりす
大量のデータがなくても解読できる
エンコーダー <=> デコーダー→日ントンのオートエンコーダーと同じ考え

Semantec Hashing(意味的ハッシング)

自然言語:ハッシング
 抽象概念・上位概念は、せまんてぃんぐハッシングなんだよね

DeepLearningで暗号解読は可能?
 もとと原文を手に入れる:データが揃わない 情報が少ない中でどうするか?

ナッシュ:1955年のNSA宛の手紙
 計算が難しい→誰も破れない:指数関数的時間
複雑性理論にとって、

ゲーデル

RSA暗号と素因数分解
220桁の数の素因数を求める(2007年に終了)

公開キー暗号 1976年
RSA暗号 1977
→先行者がいた Ellis-Cocks-Williamson
GCHQのパイオニア

暗号と計算複雑性理論
・ある種の数学的問題を「効率的」には解くことができない
 ゲーデル:不完全性定理→なにができて、なにができない
→時間とメモリーで定量的に

 優しい:手に負えない:不可能

不可能:計算可能性
優しい・手に負えない:計算複雑性理論
手に負えない<=>多項式
※nがかたにのると、指数関数

P問題:多項式時間で解ける=優しい問題
NP問題:Not Pではない 正しいかどうかは多項式時間で解ける
 素因数分解
P=NP?問題:わからない
NP困難:多項式時間で解けない

〇一方向関数
y=f(x)はやさしい、しかしYからXを求めるのは、難しいもの
→平均して難しいこと必要→暗号として使えない

 候補
・RSA
・離散対数

言語と複雑性

計算:みじか 有限と無限

認識の限界;知りうることは限られる

Shorの素因数分解アルゴリズムの発見
 NSA:暗号の標準
・フェルマーの小定理
フェルマーテスト 確率的素数判定

6月21日 マルレク・サブゼミ
・位相:キュービット

シュアのアルゴリズムと複雑性理論
 ショアのアルゴリズムが複雑性理論に衝撃を与える

BQPクラスの発見
ばじらーに
・かくちょうされたチャーチ、チューリングテーゼ
 どんな合理的なモデルも確率的チューリング機械で効率的にシミュレートできる
 →無限の長さとかは不自然:合理的ではない

ファインマンの問題提起

結論:新しい量子複雑性クラスのBQPの発見
 普通のコンピューターでは多項式時間では解けないが
 量子コンピューターなら、多項式時間でシミュレートできる

2002 PRIMES is in P

・実は人間も、コンピューターも限られている

Post Quantum Cryptography
NIST 8240
量子耐性アルゴリズムへの移行のための準備計画
 IAD
 コスト
 SuiteBは当面安全。ただ移行してないのに投資するのはやめたほうが・・・

NIST 8150
 RSA もはや安全ではない NIST 2016年の報告

ラティスベース:格子
コードベース

NIST 8240

第二ラウンド
・82のアルゴリズム

来年 ラウンド3
Moscaの定理:XとYとZ
 X:もってほしい
 Y:廃位する
 Z:量子コンピュータができるまでの年数
Zが40を超えれば、暗号は破られる

ショアの論文の引用はうなぎのぼり

量子暗号
・観測の原理:観測すると失われる→暗号を量子に託せば、みられない
・No Cloning定理:コピーできない
BB84

0>、1>を規定にエンコード
+>、ー>を規定にエンコード(45どかたむける)
区別できない
0、1が確率2分の1:量子コイン

ありすとぼぶが秘密キーを共有
BD84




最近、いろいろ書きたまってるけど、公開してないのがあるので、
徐々に出していこうと思ってる。
とくに量子コンピューターのプログラミングの仕方は、どこかにまとめたい・・・

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする