MOXBOX

Takami Torao #hazmat #moxbox
  • このエントリーをはてなブックマークに追加

基調のブルーは Čerenkov Radiation を意味するヤバいもの置き場。

Precaution

MOXBOX は日々のプログラミング経験や学習で習得した知識の理解を深めるために自分の理解の範囲で言語化し、必要になったときにいつでも思い出せるようにした上で安全に忘れて次の興味のための余力を脳に作ることを目的としている (従って専門外のことの方が多い)。基本的にノートであるため、時に数式の解法であったり実装アルゴリズムであったり、読書から要点抜粋した箇条書きであったり単なるコードのスニペットであったりと体裁はさまざまである。

従って、理解が及んでない部分には定義の不備、間違いなどが含まれる可能性がある。自分の理解と連動することから必ずしも学術的、時事的に正しい情報を載せていることを保証 (目的と) していない。

MOXBOX は 2017年9月下旬から書き始めた。サイトのWeb サーバは Finagle をベースに実装した非同期 I/O の静的サイトジェネレータサーバである。

Notation

特に明記しない限り \(\log\) の底は \(e\) とする。

最近の更新loading

\(\def\vector#1{\boldsymbol{#1}}\)

論文翻訳: On the Size of Pairing-based Non-interactive Arguments\(\star\)

2016 年の論文。

2019年12月1日(Sun) 2016年の論文 #zk-SNARK

論文翻訳: High-speed high-security signatures

エドワーズ曲線デジタル署名 (EdDSA; ed25519, ed448) の速度やセキュリティ優位性に関する 2011 年の論文。

2019年11月25日(Mon) 2011年の論文 #楕円曲線暗号 #EdDSA #Ed25519 #Ed448

論文翻訳: Pinocchio: Nearly Practical Verifiable Computation

2019年11月25日(Mon) 2013年の論文 #zk-SNARK #Pinocchio 作業中

論文翻訳: Quadratic Span Programs and Succinct NIZKs without PCPs

2019年11月25日(Mon) 2013年の論文 #zk-SNARK 作業中

RFC翻訳: Edwards-Curve Digital Signature Algorithm (EdDSA)

2019年11月10日(Sun) RFC 8032 #楕円曲線暗号 #EdDSA #Ed25519 #Ed448 作業中

論文翻訳: Curve25519: new Diffie-Hellman speed records

通常の楕円曲線アルゴリズム (EC) より高速で鍵の小さい Curve25519 を使用した暗号計算に関する 2006 年の論文。

2019年11月7日(Thu) 2006年の論文 #楕円曲線暗号 #curve25519 #ed25519 作業中

読書メモ: プログラミング言語 Rust 公式ガイド

The Rust Programming Language (日本語版) の邦訳版で ASCII DWANGO から出版されている「プログラミング言語 Rust 公式ガイド」の読書メモ。…

2019年11月4日(Mon) Rust 1.38 #Rust 作業中

秘密分散共有

秘密分散共有 (secret sharing) または単に秘密分散は秘密情報 \(S\) を \(n\) 個の分散情報に符号化する暗号化アルゴリズムの一種。特に (k,n) しきい値法では \(n\) 個の分散情報のうち任意の \(k\) 個が揃えば元の秘密情報 \(S\) を再構築することができる (\(k\) 個に満たない場合は再構築することができない)。…

2019年11月3日(Sun) #SecretSharing #VSS

論文翻訳: Compact Multi-Signatures for Smaller Blockchains

マルチ署名、公開鍵集約を使用してブロックチェーンサイズを小さくするための 2018 年の論文。

2019年10月15日(Tue) 2018年の論文 #マルチ署名

群論

2019年10月10日(Thu) #群論

論文翻訳: Aggregate and Verifiably Encrypted Signatures from Bilinear Maps

GAP Diffie-Hellman と双線形写像を使用して BLS 署名派生スキーム、集約署名、ブラインド署名、リング署名を紹介する 2003 年の論文。集約署名は異なるユーザによる異なるメッセージに対する署名を単一の署名に集約する

2019年10月8日(Tue) 2003年の論文 作業中

翻訳: Introduction to Transaction Management

2019年10月7日(Mon) 作業中

楕円曲線暗号

Diffie-Hellman や ElGamal 暗号が有限体として使用している剰余環は 1 次元の数直線であり、その上限を超えると再びゼロから開始する性質を持っていた。これは数直線の端と端を接続して円状に変形したものと同じである。…

2019年10月6日(Sun) #EC #ECC #ECDSA 作業中

公開鍵 概説

ElGamal 暗号は 1984 年に考案された CDH 仮定に基づいた公開鍵暗号方式。公開鍵で暗号化した暗号文は秘密鍵でしか復号化できず、同じ平文に対して毎回異なる暗号文が生成される。

2019年10月1日(Tue) #DLP #DH #ElGamal #ECDH #RSA #RSA-FDH #DSA

ブロックチェーンコンセンサス概要

ブロックチェーンのコンテキストでコンセンサスと呼ばれているものは、分散システムで言うところのリーダー選出と合意のアルゴリズムまたはより抽象的なスキームを意味する。バズワード的に使用されており曖昧であるため文脈には注意する必要がある。…

2019年9月26日(Thu) #Blockchain #Consensus

論文翻訳: Byzantine Finality Gadgets

Polkadot で検討されている、重み付き PoW を使った分岐の発生するコンセンサスにファイナリティ特性を追加するための PoS に基づいたアルゴリズムに関する 2019 年の提示文書。…

2019年9月26日(Thu) 2019年の論文 #Blockchain #Polkadot #GRANDPA 作業中

Blockchain: 用語

2019年9月17日(Tue) #Blockchain

鍵共有アルゴリズム

暗号技術における鍵共有 (key exchange) とは、共通の秘匿情報を持たない当事者間で公にされている情報のみを用いて、すべての当事者サイドで通信内容を保護するための共通の鍵を生成する方法。…

2019年9月17日(Tue) #鍵共有 #DH #PTP

ペアリング暗号

ペアリング暗号 (pairing-based cryptography) は双線形写像 (bilinear map) に基づく暗号アルゴリズム。2 つの暗号化群の元からある群への写像 \(e:G_1 \times G_2 \to G_3\) を使用する。…

2019年9月16日(Mon) #Pairing #IBE #BLSSignature

論文翻訳: Short Signatures from the Weil Pairing

Gap Diffie-Hellman 群でのヴェイユペアリングを使用することで、一般的な RSA や DSA での署名と比べて同じ強度で短い署名を生成する方法を示す 2001 年の論文。

2019年9月15日(Sun) 2001年の論文 #BLS署名 #GDH

Unihertz Atom

Uniherts Atom は小型軽量で防水、防塵に対応したいわゆるタフネス携帯。

2019年9月15日(Sun) #Unihertz #Atom

論文翻訳: Threshold Signatures, Multisignatures and Blind Signatures Based on the Gap-Diffie-Hellman-Group Signature Scheme

(8) の Gap Diffie-Hellman 群を 1) BLS 署名を秘密分散のスキームに拡張したしきい値署名、2) 複数の署名分散から一つの署名を作成するマルチ署名、3) メッセージを秘匿するブラインド署名のそれぞれに応用した 2002 年の論文。…

2019年9月8日(Sun) 2002年の論文 #BLS署名 #署名分散 #しきい値署名 #マルチ署名 #ブラインド署名

論文翻訳: Practical Threshold Signatures

RSA に基づく非インタラクティブな署名分散の方法についての 1999 年の論文。

2019年9月4日(Wed) 2000年の論文 #SignatureSharing #ThresholdSignature #署名分散 #しきい値署名

論文翻訳: Verifiable Random Functions

2019年9月2日(Mon) 1999年の論文 #VRF 作業中

Verifiable Random Function

VRF (verifiable random function) は公開鍵ペアを使用する暗号学的ハッシュ関数である。VRF 関数は秘密鍵を使ってある入力値に対するハッシュ値を算出することができる。…

2019年9月1日(Sun) #VRF #暗号抽選 #暗号選挙

論文翻訳: HotStuff: BFT Consensus in the Lens of Blockchain

State Machine Replication を行うための BFT 合意アルゴリズム HotStuff に関する 2019 年の論文。ブロックチェーンのような頻繁なリーダー変更を行う環境向けに、通信コストが \(O(n^2)\) から \(O(n)\) となっている。…

2019年8月25日(Sun) 2019年の論文 #HotStuff #LibraBFT

属性ベース暗号

属性ベース暗号 (ABE; attribute-based encryption) は特定の属性を持った対象者のみが情報を復号化できる暗号方式。共通鍵暗号や公開鍵暗号は暗号化/復号化に使用する鍵が 1:1 であるのに対して、それが 1:n や n:1 という特徴を持つ。…

2019年8月21日(Wed) #ABE 作業中

論文翻訳: Algorand: Scaling Byzantine Agreements for Cryptocurrencies

PoS に VRF (Verifiable Random Function) を組み合わせた選出を行う BFT 合意アルゴリズム Algorand に関する 2017 年の論文。

2019年8月20日(Tue) 2017年の論文 #Algorand 作業中

Tendermint

2019年7月16日(Tue) Tendermint 0.32 #Blockchain #Tendermint 作業中

論文翻訳: Practical Byzantine Fault Tolerance

Byzantine Fault Tolerance 合意アルゴリズムを実装面で補強した 1999 年の論文。

2019年7月7日(Sun) 1999年の論文 #PBFT

ビザンチン合意問題

ビザンチン合意問題 (Byzantine agreement problem; ビザンチン将軍問題) は分散システムにおけるサブシステム間の合意の困難さを表す例として挙げられる想定問題である。…

2019年6月24日(Mon) #Byzantine #PBFT

CAP 定理

CAP 定理は分散データベースシステムにおいて一貫性 (consistensy)、可用性 (availability)、分断耐性 (partition-tolerance) の 3 つの特性のうち 2 つまでしか満たすことができないという概念。…

2019年6月18日(Tue) #CAPTheorem

論文翻訳: Reaching Agreement in the Presence of Faults

ビザンチン故障を含むネットワークでの分散合意が可能な条件についての 1979 年の論文。

2019年6月16日(Sun) 1979年の論文 #BFT

Go: インストール

2019年6月4日(Tue) #golang #chocolatey

Bitcoin

2019年6月4日(Tue) #Blockchain #Bitcoin #暗号通貨

翻訳: Verifiable Random Functions (VRFs)

Verifiable Random Functions (VRF) は公開鍵をキーとする暗号化ハッシュのバージョンである。秘密鍵の所有者のみがハッシュを算出できるが、公開鍵を持つ人であれば誰でもハッシュの正当性を検証できる。…

2019年5月29日(Wed) 2019年 IETF Draft 4 #VRF #IETF 作業中

論文翻訳: In Search of an Understandable Consensus Algorithm (Extended Version)

Raft は複製されたログを管理するためのコンセンサスアルゴリズムである。これは (Multi-) Paxosと同等の結果を生み出し Paxos と同程度に効率的だが、その構造は Paxos とは異なる; Raft によって Paxos よりも理解しやすく実用的なシステムを構築するためのより良い基盤が提供される。…

2019年5月20日(Mon) 2014年の論文 #Raft

Java: 公開鍵生成アルゴリズム

Java では KeyPairGenerator クラスを使用して作成することができる。

2019年5月2日(Thu) Java 11 #ECDSA

分散システム

2019年4月25日(Thu)

論文翻訳: Impossibility of Distributed Consensus with One Faulty Process

コンセンサスの問題にはプロセスの非同期システムが含まれており、そのいくつかは信頼性が欠落していることがある。課題は、信頼できるプロセスが 2 値の下で合意することである。本論文では、この課題に対するどのようなプロトコルであっても、たった 1 つでも不完全なプロセスが含まれるのなら終了に達しない可能性を持つことを示している。…

2019年4月25日(Thu) 1985年の論文 #FLP #Reliability

論文翻訳: Skip Graphs

Skip Graph は、要素を格納する分散システムでバランスツリーの全機能を提供する、Skip List に基づく新しい分散データ構造である。要素はいつでも失敗する可能性のある別々のノードに格納される。…

2019年4月21日(Sun) 2003年の論文 #SkipGraph 作業中

etcd

etcd (etc distributed) は Raft に基づいた分散トランザクションを実装した分散 Key-Value ストア。コンテナ仮想化に特化した軽量 Linux ディストリビューションである CoreOS においてコンテナ間で設定を共有するために実装されたが、移植性の高い golang で実装されているため現在では様々な OS に移植されている。…

2019年4月12日(Fri) etc 3.3 #etcd 作業中

Java: Transport Layer Security

TLS (transport layer security) は TCP 上で安全な通信を行うためのプロトコル。PKI (public key infrastructure; 公開鍵基盤) に基づいて通信相手を認証し、暗号化されたストリームを通じて改ざん不可能なデータのやり取りを行うことができる。…

2019年3月24日(Sun) Java 11 #SSL #TLS #JSSE

OpenSSL リファレンス

複雑な OpenSSL コマンドを目的別にまとめる。

2019年3月21日(Thu) #openssl #ECDSA #X509

メッセージ認証コード

メッセージ認証コード (MAC; message authentication code) はメッセージが発行者によって発行されてから破損や改ざんを受けていないことを検証するために使用する小さなデータ。…

2019年3月17日(Sun) Java 11 #MAC #HMAC

クロック同期

2019年3月14日(Thu)

ゴシッププロトコル

ゴシッププロトコル (gossip protocol, gossipping) または感染プロトコル (epidemic protocol) はネットワーク上での情報マルチキャストの方法。実社会でうわさ話や感染症が伝播する過程と似たモデルである。…

2019年3月12日(Tue) #Gossip

Upper Intermediate S

英語のフレーズなどを記述しておくノート。

2019年3月2日(Sat)

Service Provider Interface

SPI (service provider interface) は特定のインターフェースに一致する実装を Java のエコシステムが検出して暗黙的にロードするための機能。Java 6 において正式に導入された。…

2019年2月26日(Tue) Java 11

Java: 署名アルゴリズム

Java では Signature クラスを使用して任意のメッセージ (バイナリデータ) に対して電子署名を作成することができる。

2019年2月18日(Mon) Java 11 #ECDSA

Java: ハッシュ関数

ハッシュ関数 (hash function)、または Java ではメッセージダイジェスト (message digest) と呼ばれる機能は、ある任意の大きさのバイナリデータから固定長のバイナリを生成するためのアルゴリズムである。…

2019年2月18日(Mon) Java 11 #CRC #SHA

プライベート認証局

2019年2月14日(Thu)

ハッシュ関数

2019年2月4日(Mon)

基数変換

Base64 はバイナリを 64 種類の文字を使用した文字列に変換する。これは、基数 256 の数列を基数 64 の数列に変換し、それぞれの桁を文字にマッピングすることと等価である。Base58 のような 64 以外の符号化についても、対象とする基数が異なるだけで同じ処理となることが分かるだろう。…

2019年2月2日(Sat) #Base64 作業中

Rocks DB

Rocks DB は C++ で実装された key-value ストアの組み込み用ライブラリ。key 及び value は任意のバイナリデータが使用できる。メモリや極低レイテンシーな Flash ドライブのような物理ストレージと他コア CPU の実行環境に最適化されている。…

2019年1月31日(Thu) #RocksDB

翻訳: The ZILLIQA Technical Whitepaper

既存の暗号通貨及びスマートコントラクトプラットフォームはスケーラビリティの問題を抱えている。すなはち、1秒間に処理できるトランザクションの数が制限されており、通常 10 未満であることが知られている。…

2019年1月28日(Mon) 2017年の論文 #Blockchain #Zilliqa

プレゼンテーション技法

Microsoft de:code 2014 でマイクロソフトのエバンジェリスト西脇さんの「プレゼンの極意」を聞いてからプレゼンの構成や技法について注意深く見るようになった。自分がプレゼンテーションをどう見てるか、どう作っているかについてこのページに記述する。…

2019年1月6日(Sun) #presentation

Blockchain

分散システムにおけるブロックチェーン (blockchain) は、ビザンチン耐性のある分散合意アルゴリズムを使ったステートマシンレプリケーション (SRM) として機能する Peer-to-Peer ネットワークである。…

2019年1月5日(Sat) #Blockchain #Bitcoin #Ethereum #DistributedLedger #暗号通貨

Proof of Work

Proof of Work (PoW) はサービス要求者に何らかの作業を強制することによって DoS 攻撃やスパムメールの送信といった悪意のあるコンピューティング能力を使用を防止する実用上の対策である。…

2018年12月29日(Sat) #Blockchain

Practical Byzantine Fault Tolerance

PBFT (practical Byzantine Fault Tolerance) はビザンチン障害耐性をもつ分散合意アルゴリズムの 1 つ。それ以前に提案されていたいくつかの BFT アルゴリズムを実用的に改良したものであり、現在ではビザンチン合意アルゴリズムとして最も一般的である。…

2018年12月25日(Tue) #PBFT

Resource Pooing 実装

リソースプーリング (resource pooling) は有限のリソースをプールしアプリケーション内の複数の処理で共有 (resource sharing) する仕組み。一般的に、生成や消滅のコストの高いリソースを初期化を終えた状態で共有、再利用することによるパフォーマンス向上の効果を目的としている。…

2018年11月27日(Tue) #ResourcePool

Future 機能

CompletableFuture は Java での非同期プログラミングで使用するクラス。非同期プログラミングはアプリケーションのメインスレッドとは別のスレッドを使用して非ブロッキングにタスクを行うための手段である。…

2018年10月30日(Tue) Java 8

論文翻訳: HyperLogLog: the analysis of a near-optimal cardinality estimation algorithm

大量のデータから要素数を推定するアルゴリズム HyperLogLog に関する 2007 年の論文。

2018年10月30日(Tue) 2007年の論文 #HyperLogLog #BigData 作業中

HDFS

HDFS (Hadoop distributed file system) は Hadoop で使用されている分散ファイルシステム。データを複数の計算機上に分散配置し、MapReduce を用いて各計算機上で並列分散処理を行うことができる。…

2018年10月23日(Tue) #HDFS

Redis:インストール

Redis は C で書かれており、gcc や libc 以外に依存するライブラリを持たないことから公式の Redis Quick Start では最新版をソースからコンパイルすることを薦めている。…

2018年10月20日(Sat) Redis 4 #Redis

Lettuce 5

2018年10月10日(Wed) Redis 4 Lettuce 5 #Redis #Lettuce

Redis

Redis はデータベースやキャッシュ、メッセージブローカーとして使用することのできるインメモリデータベース。NoSQL DB の一つとしてよく知られている。主に Unix 系の OS を対象としており Windows での実行は難しい。…

2018年10月10日(Wed) Redis 4 #Redis

覚知の限界

交渉や駆け引きにおける注意の狭窄と焦点化、またそれらによって引き起こされる合理性の欠ける判断は覚知の限界 (bounded awareness; Bazerman, Chugh, 2005) と呼ばれる。…

2018年9月8日(Sat) #BoundedAwareness

オープンデータセット

2018年8月13日(Mon)

畳み込みニューラルネットワーク

畳み込みニューラルネットワーク (convnet, CNN; convolutional neural network) はフィードフォーワード型の深層ニューラルネットワーク (DNN; deep neural network) の一種。…

2018年8月13日(Mon) #ConvNet

Keras: 超解像

超解像 (super resolution) は解像度の低い画像や動画、音声などの信号からより高解像度なバージョンを生成する技術。

2018年8月13日(Mon) Python 3.5 Keras 2.2 TensorFlow 1.8 #Keras #TensorFlow #RSCNN

Keras: CNN中間層フィルタの可視化

2018年8月7日(Tue) Python 3.6 Keras 2.2 TensorFlow 1.8 #Keras #TensorFlow #Conv 作業中

Matplotlib TIPS

2018年8月6日(Mon) Python 3.5 #matplotlib

論文翻訳: Deep Clustering for Unsupervised Learning of Visual Features

概要: クラスタリングはコンピュータ・ビジョンで広く適用され研究されている教師なし学習方法の一種である。しかし大規模なデータセット上での視覚的特徴量の end-to-end 学習にクラスタリングを適用させる研究は殆ど行われていない。…

2018年7月27日(Fri) 2018年の論文 #DeepCluster #CNN

OpenCV: 画像クラスタリング (PCA/DBSCAN)

2018年7月25日(Wed) OpenCV 3 #OpenCV 作業中

React:逆引き

2018年7月23日(Mon) Node.js 8 React 16 #nodejs #reactjs

Ubuntu18.04: CUDA+Docker セットアップ

Ubuntu 18.04 (bionic beaver) の Docker コンテナ上からホストに設置されている GPU を使用するための環境構築手順を記述する。

2018年7月21日(Sat) Ubuntu 18.04 CUDA 9.0 GTX-1050TI #ubuntu #nvidia #cuda

ローカルサーバ: Cobalt

CPU 処理と常時起動サーバのためのマシン。

2018年7月16日(Mon) Ubuntu 18.04 #ubuntu

Keras: 画像生成 (変分オートエンコーダー)

オートエンコーダー (autoencoder, 自動符号化器) はニューラルネットワークを使用した次元削減手法。次元の小さい中間層を設置した多層ニューラルネットワークを、入力と同じデータを出力するように学習することで、中間層部分の出力からより特徴的な表現を少ない次元で得ることができる。…

2018年7月14日(Sat) Python 3.5 Keras 2.2 TensorFlow 1.8 #Keras #TensorFlow #VAE

RPi: 目的別リファレンス

2018年7月13日(Fri) #RaspberryPi

Keras: CNN画像分類 (Keras-provided CNN)

Keras は過去のコンテストで優秀な成績を収めた CNN がすぐに利用可能な形で含まれている。ここではこれらの CNN を独自のデータセットで学習して画像分類を行う。

2018年7月11日(Wed) Python 3.5 Keras 2.2 TensorFlow 1.8 #Keras #TensorFlow #Xception

Keras: CNN画像分類 (クラスの可視化)

2018年7月10日(Tue) Keras 2.2 TensorFlow 1.8 #Keras #TensorFlow #VGG16

Keras: CNN中間層出力の可視化

Keras 2.2 を使用して CNN の中間層がどのような出力を行っているかを可視化する。ここでは学習済みモデルに VGG16 + ImageNet を使用しカワセミの写真のどの部分を特徴としてとらえているかを示すためのヒートマップを作成する。…

2018年7月9日(Mon) Python 3.6 Keras 2.2 TensorFlow 1.8 #Keras #TensorFlow #Conv

CIFAR-10

CIFAR-10 は 10 種に分類された 32×32 の 60,000 画像からなるデータセット。80 Million Tiny Images から画像認識のために抽出/分類したサブセットである。…

2018年7月6日(Fri) Python 3.5 Keras 2.2 #CIFAR10 #CNN

Keras: ImageDataGenerator

Keras 2.2 に付属するデータ拡張と正規化のための多機能前処理ユーティリティ ImageDataGenerator のパラメータごとの効果を整理する。明文化されていない部分については Github のソースを参照する必要がある。…

2018年7月4日(Wed) Keras 2.2 TensorFlow 1.8 #Keras #TensorFlow

Keras: CNN画像分類 (転移学習/Fine Tuning)

転移学習 (transfer learning) はネットワークをゼロから学習させる代わりに、別のタスクで学習したネットワークを元に目的のタスクに最学習させることで、学習のための計算コストや学習に必要なデータセットの数を削減する手法。…

2018年7月1日(Sun) Python 3.5 Keras 2.2 TensorFlow 1.8 #Keras #TensorFlow #VGG16

Keras: CNN画像分類 (Pre-trained CNN Model)

CNN モデルを使用した画像分類スクリプトを作成する。Keras は自分でニューラルネットワークを組み立てデータセットを用意してモデルを構築することもできるが、過去のコンペで優秀な成績を収めたいくつかの CNN がすぐに利用可能な形で含まれていて、推測部分にフォーカスして試すのであればそれらを利用するのが早い。…

2018年6月28日(Thu) Python 3.5 Keras 2.2 TensorFlow 1.8 #Keras #TensorFlow #VGG16

Keras: ImageNet分類ラベル一覧

ImageNet データセットに基づく Keras 2.2.0 で利用可能な CNN 学習済みモデルの分類ラベルとその意味 (./keras/models/imagenet_class_index.json に保存されている)。…

2018年6月28日(Thu) Keras 2.2 TensorFlow 1.8 #Keras #TensorFlow #VGG16

Lucene: 類似画像検索

AKAZE, ORB, SIFT, SURF などを使用して画像から特徴点とスケール・回転・輝度・Blur 耐性を持つ特徴量を抽出し、それらから Bug of Visual Words (Bag of Features) を使用して全文検索エンジンである Lucene

2018年6月27日(Wed) Lucene 6 #Lucene #Lire

JavaVM 仕様読書会ノート

The Java® Virtual Machine Specification Java SE 10 Edition 読書会のノート。Connpass イベント。

2018年6月23日(Sat) JavaVM Spec 10 #JVMSpec_Reading

認知バイアス

意思決定において根拠の一つ一つを吟味し合理的な判断を下すコストは決して低いものではない。人は重要ではない判断に対して、過去に経験したり記憶から導き出しやすい材料に基づいて意思決定を行っている。…

2018年6月18日(Mon) #認知バイアス #CognitiveBias

TensorFlow + Keras セットアップ

2018年6月13日(Wed) Keras 2.2 TensorFlow 1.8 Python 3.6 #keras #tensorflow

OpenCV: 局所特徴量による類似画像検索/分類

画像の局所特徴量は回転や拡大縮小によって分布が変換しない特徴ベクトルである。つまり特徴量の分布の形が似ている画像は特徴点の配置が似ている画像であることが予想される。この局所特徴量を \(n\) 次元空間上でクラスタ化し、画像ごとに算出した Bag of Visual Words (Bag of Features とも) を使用して画像の類似度を得ることで、撮影されている物体の特徴に基づいた画像検索を行うことを目的とする。…

2018年6月11日(Mon) OpenCV 3 Python 3 #OpenCV

OpenCV: 特徴点/特徴量の抽出

2018年6月6日(Wed) OpenCV 3 Python 3 #OpenCV

OpenCV: セットアップ

Windows / Java 環境で OpenCV を使うまでのセットアップ手順。OpenCV の Java バインディングは JAR ファイルとその JNI のネイティブライブラリ (Windows であれば DLL) の 2 ファイルで構成されている。…

2018年6月6日(Wed) OpenCV 3 #OpenCV

Julia: 目的別機能

2018年6月1日(Fri) Julia 0.6 #julialang

判断の選好逆転

完全に合理的な判断ができているのであれば前提条件が変わらない限り判断が変わることはない。しかし人は問題のとらえ方に流されて異なる判断を行いがちである。

2018年5月31日(Thu)

Julia: グラフの描画

PyPlot はプロットライブラリである matplotlib.python のインターフェースを Julia から使えるようにしたパッケージ。ローカルに導入する場合は REPL で PyPlot パッケージを導入しておく。…

2018年5月30日(Wed) Julia 0.6 #julialang

OpenCV: 目的別機能

2018年5月30日(Wed) OpenCV 3 #OpenCV

OpenCV 3

2018年5月28日(Mon) OpenCV 3 #OpenCV

画像収集

機械学習を行う目的で対象物の画像を収集する方法について現時点での手順をまとめておく。処理は大まかに以下のステップを想定しているが:

2018年5月24日(Thu) Node.js 8 ES2015 #Azure #GCP #Flickr #AWS

ボロノイ領域

ボロノイ領域 (Volonoi region) は

2018年5月13日(Sun)

意思決定

2018年5月12日(Sat)

最大エントロピー法

最大エントロピー法 (maximum entropy model) は前提条件だけで明確な確率分布を導き出せない事象に対して、全体のエントロピーが最大化する方向に確率分布を割り当てる方法。条件が設定されていないのであれば、条件外の余計な偏りを含まない最も不確かなモデルが採用されるべきという考え方に基づく。…

2018年5月10日(Thu) #NLP #MaximumEntropy

論文翻訳: A Simple Introduction to Maximum Entropy Models for Natural Language Processing

自然言語処理における多くの問題は、言語学的文脈を用いて言語学的クラスを予測する言語学的分類問題と考えることができる。最大エントロピーモデルは特定の言語学的コンテキストで発生する特定の言語学的クラスの確率を推定するために、様々な文脈的根拠を組み合わせるクリーンな方法を提供する。…

2018年5月8日(Tue) 1997年の論文 #NLP #MaximumEntropy

The Rust Programming Language ノート

The Rust Programming Language 2nd ED. からのメモ書き。

2018年4月27日(Fri) Rust 1.25 #Rust

Rust 開発環境

2018年4月27日(Fri) Rust 1.25 #Rust

S2 Geometry Library

S2 Geometry Library は球面上の領域を扱うための空間インデクシング (spatial indexing) ライブラリ。主に地球を対象としており、地理データを分割統治や索引付けのためのセル (区画) に分割することを目的としている。…

2018年4月20日(Fri) #S2

B+Tree

B-Tree の派生型である B+Tree は、個々のキーの検索効率を下げる代わりに、ある範囲のデータをまとめて取得するケースに適した構造を持つ。B-Tree が中間ノードにもデータエントリを保持していたのに対して、B+Tree では末端の葉にのみエントリを保持し、葉は相互にリンクしたリストの構造を持っている。…

2018年4月15日(Sun) #BTree

R-Tree

R-Tree は深さ平衡木 (depth-balanced tree)。葉ノード

2018年4月7日(Sat) #RTree

論文翻訳: The Priority R-Tree: A Practically Efficient and Worst-Case Optimal R-Tree

空間インデックス (spatial index) のためのアルゴリズム Priority R-Tree (2004) に関する論文。

2018年4月5日(Thu) 2004年の論文 #RTree 作業中

論文翻訳: From Word Embeddings To Document Distances

我々はテキスト文書間の新しい距離関数である Word Mover's Distance (WMD) を提示する。我々の研究は文中の局所的な共起から単語の意味的に重要な表現を学習する単語埋め込み (word embedding) の最近の研究結果に基づいている。…

2018年3月29日(Thu) 2015年の論文 #NLP #WordMoversDistance #WMD 作業中

論文翻訳: PositionRank: An Unsupervised Approach to Keyphrase Extraction from Scholarly Documents

学術論文からキーフレーズを抽出するためのアルゴリズム PositionRank (2017) に関する論文。

2018年3月28日(Wed) 2017年の論文 #NLP #PositionRank 作業中

可変長整数エンコーディング

いくつかの可変長整数エンコーディング実装について。このページの話題は任意精度整数演算ではなくデータ圧縮の目的で整数値をエンコーディングする方法である。

2018年3月26日(Mon)

社会心理学

2018年3月19日(Mon)

React

React は SPA (Single Page Application) を開発するためのフレームワーク。JSX を含む JavaScript ソースやその依存ファイルをブラウザが解釈可能な形式にトランスコンパイルし、最終的に一般的な HTTP サーバにデプロイできる形の静的なファイルセットを作成する。…

2018年3月6日(Tue) Node.js 8 React 16 #nodejs #reactjs

英語ノート

英語のフレーズなどを記述しておくノート。

2018年2月27日(Tue)

npm

npm (Node package manager) は JavaScript 用のパッケージマネージャで世界最大級のソフトウェアレジストリ。JavaScript 実行環境である Node.js のデフォルトのパッケージマネージャとして使用されている。…

2018年2月23日(Fri) Node.js 8 npm 5 #nodejs #npm 作業中

Node.js セットアップ

2018年2月22日(Thu) Node.js 8 npm 5 #nodejs #npm

Docker セットアップ

2018年2月22日(Thu) Ubuntu 14.04 Docker 17 #Docker 作業中

最小経路問題

重み付きグラフ上のある頂点 \(s\) から別の頂点 \(t\) まで到達する経路の中で最もコストの低い経路を求める問題 (重みなしグラフの場合は各辺の重みを 1 とする)。最小シュタイナー木問題において 2 点を使った最小コストの部分グラフを作成することと同じ。…

2018年2月20日(Tue) #graphtheory

最小全域木問題

いくつかの頂点と、各頂点の間をつなげるコスト (辺の重み) が定義されており、最も小さいコストですべての頂点をつなぐ最適化問題。コストは 0 より大きく接続不能 (つまりコスト \(\infty\)) も取り得る。…

2018年2月18日(Sun) #graphtheory

タグ抽出

タグ抽出 (tag extraction) またはキーワード抽出の目的は文書の内容を代表していると思われる単語を選択する処理。他に自然文の構文構造を素性として重み付けする方法などいくつか過去の研究ある。…

2018年2月15日(Thu) JUNG 2.1 #NLP

グラフ理論 序説

グラフ理論 (graph theory) は数学的概念であるグラフを説明する理論。問題を頂点と辺からなるグラフに抽象化し、その離散構造そのものを論議の対象とする。

2018年2月14日(Wed) #graphtheory

論文翻訳: The Use of MMR, Diversity-Based Reranking for Reordering Documents and Producing Summaries

本稿はテキスト検索と要約の文脈において情報関連性とクエリー関連性を統合する方法を提示する。Maximal Marginal Relevance (MMR) の判定基準は、検索された文書の順位を変更したり、テキスト要約のための適切な一節を選択する際に、クエリーの関連性を維持しながら冗長性を減らすことを目的としている。…

2018年2月12日(Mon) 1998年の論文 #NLP #MMR

コサイン類似度

ベクトル空間モデル (vector space model)、または単語ベクトルモデル (term vector model) はテキスト文書やそれに類似する任意のオブジェクトを識別子のベクトルとして表現するための代数空間モデルである。…

2018年2月8日(Thu)

論文翻訳: LexRank: Graph-based Lexical Centrality as Salience in Text Summarization

我々は推計学的な graph-based のグラフに基づいて自然言語処理におけるテキスト単位の相対的重要度を算出する方法を導入し、テキスト要約 (TS; text summarization) 問題でこの手法をテストする。…

2018年2月1日(Thu) 2004年の論文 #NLP #LexRank 作業中

自動要約

自動要約 (auto summalization) または文書要約は文書の要約を作成することを目的としたテキスト短縮の処理。対象とする文書が一つの場合を単一文書要約、特定の文書セットを要約する場合を複数文書要約と呼ぶ。…

2018年2月1日(Thu) JUNG 2.1 #NLP

論文翻訳: TextRank: Bringing Order into Texts

この論文ではテキスト処理において graph-based ランキングモデルである TextRank を導入し、このモデルが自然言語アプリケーションにおいて有効に機能するかを示す。特に、キーワード抽出と文抽出の 2 つの革新的な教師なし学習の方法を提案し、得られた結果が既存のベンチマークで過去に公表された結果と適合することを示す。…

2018年2月1日(Thu) 2004年の論文 #NLP #TextRank

Holt-Winters 法

ホルト-ウィンターズ法 (Holt-Winters method) は指数平滑化法における時系列の変動にトレンドと季節変動を追加し、それぞれの指数平滑の重ね合わせを期待値として算出する方法。…

2018年1月31日(Wed) #HoltWinters

行動経済学

2018年1月28日(Sun)

指数平滑化法

指数平滑化法 (exponential smoothing) は時系列データを平滑化する代表的な時系列分析手法。観測値の中でより新しいデータに大きな重みを設定し、過去になるほど指数関数的に重みを減少させた期待値 (移動平均) を算出する。…

2018年1月22日(Mon)

Julia 言語の特徴

2018年1月16日(Tue) Julia 0.6.2 #julialang

Jupyter Notebook

Jupyter Notebook はライブコード、方程式、視覚化、テキストを含むドキュメントを作成して共有できるオープンソースの Web アプリケーション。データのクリーニングと変換、数値シミュレーション、統計モデリング、データの視覚化、機械学習などを目的として使用される。…

2018年1月5日(Fri) Jupyter Notebook 4.4.0 #jupyternotebook 作業中

Peer to Peer

Peer to Peer (P2P) は対等な動作をする (明確な主従関係を持たない) ノードによるネットワークまたはシステムのモデル。クライアント/サーバシステム (C/S システム) におけるサーバはクライアントに対して一方的にサービスを提供する役割だったのに対して、P2P では一方的にサービスの提供者となるサーバは存在せず、それぞれの Peer が状況に応じてサーバとクライアント両方の役割を持つ。…

2017年12月27日(Wed) #P2P 作業中

Python 3 セットアップ

この記述では Python 3 を使用して virtualenv で環境を切り替え pip でライブラリの管理を行うことをゴールとする。

2017年12月16日(Sat) Windows 10 Ubuntu 16.04 #python

Chainer セットアップ

Chainer はニューラルネットワークを記述するためのフレームワーク。既存の命令型フレームワークよりも "Define and Run" で柔軟性を重視しており宣言的にネットワークを記述することができる。…

2017年12月16日(Sat) Ubuntu 16.04 Chariner 3.2 CuPy 2.2 #chainer

メタプログラミング

Julia はコードを AST (abstract syntax tree; 抽象構文木) として評価する機能を持っている。ここでの評価とはコード上に AST を展開し実行することを意味する。…

2017年12月12日(Tue) Julia 0.6.2 #julialang

MXNet セットアップ

Apache MXNet は高速でスケーラブルな機械学習フレームワーク。Gluon という高レベル API が付属しており AWS が正式にサポートしている。

2017年12月12日(Tue) mxnet 0.9.3a Scala 2.11 Windows 10 Ubuntu 16.04 #mxnet 作業中

word2vec

word2vec は与えられた系列における節の位置関係に基づいて、節の特徴ベクトル (分散表現; word embedding) を作成するアルゴリズム。2 層のニューラルネットワークで構成され、自然言語処理において単語の特徴ベクトルを作成するために利用される。…

2017年12月2日(Sat) #word2vec 作業中

多層パーセプトロン

多層パーセプトロン (MLP; multilayer perceptron) または Feedforward Neural Network, Deep Feedforward Network は典型的な深層機械学習のためのネットワークモデル。…

2017年12月1日(Fri) #MLP #DNN #deeplearning 作業中

Recurrent Neural Network

Recurrent Neural Network (RNN; 再帰型ニューラルネットワーク) は時系列の情報パターンを認識するように設計されたニューラルネットワーク。自然言語処理、遺伝子、センサーデータ、株式など、データのシーケンスを節に分解して時系列として扱うことができるデータを対象としている。…

2017年12月1日(Fri) #RNN 作業中

React Native

React Native

2017年11月30日(Thu) React Native 0.49 作業中

Google Fusion Tables

Google Fusion Tables は Google が提供するデータベース。

2017年11月25日(Sat) Fusion Tables API v2 作業中

Fusion Tables Client API for Java/Scala

Java やその他の JavaVM 言語は Maven, Gradle, sbt などのビルドツールを利用して Maven リポジトリの Fusion Tables API のクライアントライブラリを利用するのが早いだろう。…

2017年11月25日(Sat) Fusion Tables API v2 Drive API v3 Java 8 Scala 2.12

MXBean

2017年11月23日(Thu) Java 9 #MXBean 作業中

通知

Service Worker はブラウザネイティブと同じ UI でユーザに通知を行うことができる。通知方法には 2 種類あり、ユーザがアプリを起動していないときでもローカルで起動しているアプリからユーザに通知を行う方法。…

2017年11月22日(Wed) W3C Service Workers Nightly Chrome 61 #ServiceWorker 作業中

キャッシュ制御

Service Worker の目的の一つはキャッシュ制御によるサイトの高速化である。ブラウザのキャッシュをサイト実装者が詳細に制御することで、動的に変化しないコンテンツ (HTML, CSS, JS, 画像等) をデバイスローカルにキャッシュし Web アプリケーションの表示を高速化する。…

2017年11月22日(Wed) W3C Service Workers Nightly Chrome 61 #ServiceWorker

インストール

2017年11月20日(Mon) W3C Service Workers Nightly Chrome 61

Service Worker

サービスワーカー (service worker) はクライアント (ブラウザ) のバックグランドで実行される JavaScript 処理。HTML を操作するユーザインターフェースのスクリプトとは別のコンテキストで動作する。…

2017年11月19日(Sun) W3C Service Workers Nightly Chrome 61 #ServiceWorker

メルカトル図法

メルカトル図法 (Mercator projection) またはメルカトル投影は円筒投影法を用いて球体表面の 2 次元座標を \(x\),\(y\) 座標の平面に投影する方法。ここでは地球上の地理の投影について述べている。…

2017年11月16日(Thu)

Getting Started with Progressive Web Apps

Progressive Web Apps (PWA) は Google が開発したスマートフォン/タブレット向けのアプリケーションアーキテクチャ。HTML, JavaScript, CSS で作成できる。…

2017年11月16日(Thu) 作業中

Latent Dirichlet Allocation

2017年10月30日(Mon) #LDA 作業中

Note: ビットコインのブロックチェーン

BCCC 2017 で行った bitcon のブロックチェーン技術に関するノート。

2017年10月27日(Fri) #bitcoin #blockchain

制御構文

2017年10月25日(Wed) Java 9 Scala 2.12 Julia 0.6 #java #scala #julialang 作業中

データ型

2017年10月25日(Wed) Java 9 Scala 2.12 Julia 0.6 #java #scala #julialang

タイムゾーン一覧

TimeZone で定義されている通貨の一覧。

2017年10月21日(Sat) Java 8 Java 9

文字セット一覧

Charset に定義されている文字セット。

2017年10月21日(Sat) Java 8 Java 9

システムプロパティ一覧

System で定義されている通貨の一覧。

2017年10月21日(Sat) Java 8 Java 9

ロケール一覧

Locale で定義されている通貨の一覧。

2017年10月21日(Sat) Java 8 Java 9

通貨一覧

Currency で定義されている通貨の一覧。

2017年10月21日(Sat) Java 8 Java 9

ポアソン分布

単位時間あたりに平均 \(\mu\) 回観測される事象が、単位時間あたりに \(r\) 回観測される確率はポアソン分布 (poison distribution) に従う。\( P(X=r) = \frac{e^{-\lambda} \lambda^r}{r!}, \ \ r=0,1,\ldots\s \)

2017年10月19日(Thu) 作業中

数値の操作

2017年10月17日(Tue) Java 9 Scala 2.12 Julia 0.6 #java #scala #julialang

文字列の操作

2017年10月17日(Tue) Java 9 Scala 2.12 Julia 0.6 #java #scala #julialang

Julia - 演算子

Julia の特徴的な演算子機能としては、べき乗と逆除算が用意されていること、そして言語機能のレベルで演算子のベクトル化が可能であることが挙げられる。C/C++ や Java などの言語知識があれば多くは読み飛ばしてもかまわない。…

2017年10月15日(Sun) Julia 0.6.0 #julialang

データ型・変数・関数

2017年10月14日(Sat) Julia 0.6.0 #julialang

スクラップブック

2017年10月14日(Sat) Julia 0.6.0 #julialang

相関係数

相関係数 (correlation coefficient) は確率変数 \(X\) に対する別の確率変数 \(Y\) の線形従属性を示す尺度。最も一般的なものは線形相関係数 (linear correlation coefficient) で積率相関係数 (product-moment correlation coefficient)、Peason の \(r\) (Pearson's r) とも呼ばれる。…

2017年10月14日(Sat)

機械イプシロン

機械イプシロン (machine epsilon) は浮動小数点演算の丸めによって発生する相対誤差の上限を意味する。これはコンピュータ演算を使った数値解析特有のトピックである。macheps, unit roundoff または計算機イプシロンとも呼ばれ記号 \(\epsilon\), \({\bf u}\) で表される。…

2017年10月14日(Sat)

有効数字

有効数字 (significant figures of number) は実数の分解能を意味する数字。数値のどの桁までが意味を持つかを表している。

2017年10月14日(Sat)

TF-IDF

TF-IDF (term frequency - inverse document frequency) はある単語がコーパス内の文書に対してどれほど重要であるかを示す統計的数値。TF-IDF 値は文書内に単語が出現する回数に比例して増加するが、コーパス内での単語の出現頻度によって相殺されることが多く、一般に頻繁に出現する単語を調整する利点をもつ。…

2017年10月12日(Thu) #TF-IDF

形態素解析

自然言語処理ではよく単語を文章を構成する「意味を持つ情報」の最小単位として扱っている。ラテン語圏の言語は単語の区切りに空白を使用しているためプログラムでの抽出は比較的容易だが、日本語の場合は文の中から単語を識別し適切に分割する実装が必要となる。…

2017年10月12日(Thu) Kuromoji #kuromoji #形態素解析

マルコフ連鎖モンテカルロ法

マルコフ連鎖モンテカルロ法 (Markov chain Monte Carlo methods; MCMC 法) は確率分布から疑似乱数サンプリングを行うためのアルゴリズム。ある時点の状態 \(x^{(t)}\) からランダムに採択した次の状態 \(x^{(t+1)}\) へ確率付きで移動することから "マルコフ連鎖", "モンテカルロ法" の名前で呼ばれる。…

2017年10月10日(Tue) #MCMC 作業中

マルコフ連鎖

時刻やステップの推移で状態空間 \(\{1, 2, \ldots, k\}\) のいずれかの値を持つ確率変数について考える。ある時点 \(t\in(0, 1, \ldots)\) での確率変数を \(x^{(t)}\) とする。…

2017年10月10日(Tue)

疑似乱数サンプリング

疑似乱数サンプリング (pseudo-random number sampling) は与えられた確率分布に従う擬似乱数を生成する数値的手法。一般に一様乱数 \(u\) を利用して一様ではない分布のサンプリングを行う。…

2017年10月10日(Tue) 作業中

ベータ分布

ベータ分布 (beta distribution) は以下の式で表される連続確率分布。確率変数は \(0 \lt x \lt 1\) の範囲を取る。\( P(x; \alpha, \beta) = \frac{x^{\alpha-1}(1-x)^{\beta-1}}{B(\alpha,\beta)}, \,\,\, \alpha \gt 0, \beta\gt 0 \) ここで \(B(\alpha,\beta)\) はベータ関数である。…

2017年10月8日(Sun)

不動点反復法

関数の不動点 (fixed-point) とは関数によって自分自身を得る点のこと。つまり \(f(x) = x\) が成り立つ点 \(x\) は関数 (写像) \(f\) の不動点である。

2017年10月6日(Fri) 作業中

モンティ・ホール問題

1990 年に話題になったとき、著名な数学者を含む多くの人が「同じ確率だから選択を変える必要はない」と答えた問題。最終的な状況を客観視すると、選択可能な箱が 2 つあってそのうちのどちらかが当たりであることから、どちらを選んでも確率は 1/2 に思える。…

2017年10月5日(Thu)

ベルヌーイ分布

結果が {0, 1}、{true, false}、{OK, NG} といった 2 値しかとりえない独立した事象の試みをベルヌーイ試行 (bernoulli trial) と呼ぶ。これらの結果は統計で扱う便宜上 \(b \in \{0,1\}\) に置き換えて考える。…

2017年10月4日(Wed)

カテゴリカル分布

それぞれ独立した確率 \(p_k\) を持つ \(K\) 個の事象が存在し、1 回の独立した試行でそのいずれか一つが観測される離散確率分布をカテゴリカル分布 (categorical distribution) と呼ぶ。…

2017年10月2日(Mon)

カイ二乗分布

\(\vector{x} = (x_1, x_2, \cdots, x_k)\) が標準正規分布に従う確率変数であるとき、その自乗和 \( Z = \sum_{i=1}^k x_i^2 \) は自由度 \(k\) のカイ二乗分布に従う (\(\chi_k^2\) と表す)。…

2017年10月1日(Sun) 作業中

多項分布の推定

事象 \(k \in \{1,2,\cdots,K\}\) がそれぞれ生起確率 \(\vector{p} = (p_1,p_2,\cdots,p_K)\) に従って観測されるとき、標本 \(x=k\) が観測される確率 \(P(k)=p_k\) の分布はカテゴリカル分布に従う。…

2017年10月1日(Sun)

二項分布

試行において 1 が観測される確率 \(p\) のベルヌーイ試行を \(n\) 回行ったとき (あるいは \(n\) 個同時に行ったとき) に 1 が \(x\) 個観測される確率は \(p\) と \(n\) をパラメータとした以下の確率質量関数で表される。…

2017年9月30日(Sat)

多項分布

独立した \(K\) 個の事象 \(k \in \{1, 2, \ldots, K\}\) のいずれか一つが観測される確率をそれぞれ \(\vector{p} = (p_1, p_2, \ldots, p_K)\)、\(\sum_{k=1}^K p_k = 1\) とする。…

2017年9月30日(Sat)

高速逆二乗根

高速逆二乗根 (fast inverse square root) は浮動小数点と定数を用いて \(\frac{1}{\sqrt{x}}\) を高速に演算する方法。

2017年9月29日(Fri) 作業中

浮動小数点演算

浮動小数点演算 (floating-point arithmetic) は実数をある範囲の精度で近似した数式表現で行う算術演算のこと。この近似表現を浮動小数点数という。科学技術計算では非常に大きな値や小さな値を扱う代わりに、観測精度の限界から必要な有効数字が保証されていれば十分であることが多い。…

2017年9月29日(Fri)

Scala による数値演算アルゴリズム

学生の頃に Numerical Recipes in C という多くの実数演算アルゴリズムの載った書籍があった。英語版は 3rd Ed. が出ているようだが日本語版は出ていない。アルゴリズム辞典や数値演算ライブラリを作る気はないのだが系統としてはあの本の方向で行ければ良いと思っている。…

2017年9月27日(Wed)

二項分布の推定

事象 \(b \in \{0,1\}\) のベルヌーイ試行で \(b=1\) となる確率を \(p\)、試行回数を \(n\) とした時、1 が \(x\) 回観測される (出た数の合計が \(x\) となる) 確率関数は二項分布 \(P(x;n,p)\) に従う。…

2017年9月18日(Mon)

正規分布の推定

平均 \(\mu\)、分散 \(\sigma^2\) をパラメータとする正規分布 \({\rm Norm}(\mu,\sigma^2)\) にもとづいて確率変数 \(x\) が観測されるとき、その確率密度関数は以下のように表される。…

2017年9月18日(Mon)

最尤推定とMAP推定

ある生起確率 \(\vector{\theta}=(\theta_1, \ldots, \theta_N)\) に基づいてデータ \(\vector{X} = (x_1, x_2, \ldots, x_N)\) が観測されるとき、あるデータ \(\vector{X}\) が観測される確率は \(\vector{p}(\vector{X}|\vector{\theta})\) で表される (条件付き確率)。…

2017年9月17日(Sun) 作業中

ND4J ユーザガイド

2017年9月17日(Sun) 作業中

ベータ関数

ベータ関数 (beta function) は以下の積分で定義される特殊関数。\( B(x, y) = B(y, x) = \int_0^1 t^{x-1} (1-t)^{y-1} dt \) またガンマ関数を使用して以下のように表すこともできる。…

2017年9月14日(Thu)

ガンマ関数と階乗

ガンマ関数 (gamma function) は 0 または負の整数以外の複素数に対して以下の積分で定義される特殊関数。\( \Gamma(z) = \int_0^\infty t^{z-1} e^{-t} dt \) また漸化式 \(\Gamma(z+1) = z \Gamma(z)\) でも表すことができる。…

2017年9月14日(Thu)

ディリクレ分布

ディリクレ分布 (dirichlet distribution) は独立した事象 \(k \in \{1, 2, \cdots, K\}\) がそれぞれ \(x_k=\alpha_k - 1\) 回観測されたときに各事象の生起確率が \(p_k\) である確率を示す連続した確率密度関数。…

2017年9月10日(Sun)

ラグランジュの未定乗数法

ある関数 \(f(x)\) に条件 \(g(x)=0\) が設定されているとき、未定乗数 \(\lambda\) を導入して \(f(x)\) の極値 (最大値/最小値となる \(x\)) を求める方法。…

2017年9月10日(Sun)

usb4j の機能

usb4j は USB デバイスと通信する Java アプリケーションを開発するためのライブラリです。Java の高い移植性を生かしてプラットフォームごとに異なる USB 実装をより抽象化した API で利用することを目的としています。…

2009年5月21日(Thu) #usb4j

USB for Java

2009年5月21日(Thu) #usb4j

USB for Java

USB for Java は Java から USB デバイスと通信するためのライブラリです。

2009年5月6日(Wed) #usb4j

HTTP Sniffer Proxy

Java 製のプロキシ型 HTTP リクエスト/レスポンス Sniffer。クライアントから想定通りのリクエストが出ているか、サーバがきちんと Cookie を返しているかなど、ブラウザのソース表示だけでは分からない通信プロトコルを調査する Web ディベロッパー向けツールです。…

2009年4月16日(Thu) #HTTPRroxy

3. 物理プロトコル

2008年10月22日(Wed) #Garmin #GPS

4. リンクプロトコル

2008年10月22日(Wed) #Garmin #GPS

2. プロトコル層

2008年10月22日(Wed) #Garmin #GPS

Garmin Device Interface Specification

2008年10月22日(Wed) #Garmin #GPS

7. データ型

2008年10月22日(Wed) #Garmin #GPS

5. アプリケーションプロトコルの概要

2008年10月22日(Wed) #Garmin #GPS

1. 導入

2008年10月22日(Wed) #Garmin #GPS

6. アプリケーションプロトコル

2008年10月22日(Wed) #Garmin #GPS

Standard Widget Toolkit

SWT (Standard Widget Toolkit) は IBM が Eclipse 用に開発した GUI ライブラリです。JNI を使用することで昔の Swing で問題となっていたグラフィック描画のボトルネックを回避し、当時の Swing ベースのアプリケーションと比較して格段の速さを誇っていました。…

2008年3月22日(Sat) Java 6

Java GUI

現在 Java で利用されている主な GUI (Graphical User Interface) ライブラリは AWT、Swing、SWT の 3 つです。ただし AWT のみによる GUI アプリケーション開発は既にほとんど行われておりません。…

2008年3月22日(Sat) Java 6

SWT レイアウトマネージャ

SWT は AWT とは別に専用のレイアウトマネージャを用意していますが、機能や役割は AWT のそれと同じです。

2008年3月22日(Sat) Java 6

公開鍵暗号 入門

異なる鍵 A と B が存在した場合、A で暗号化したデータが B でしか復号化できないといった特殊な鍵の組み合わせを非対称鍵 (asymmetric key) と言う。公開鍵暗号 (public-key encryption) は非対称鍵の特性を利用して鍵の片方を暗号化用に相手に公開し (公開鍵)、もう片方を復号化用に非公開にしておく (秘密鍵) 方式。…

2008年3月22日(Sat)

Secure Sockets Layer

SSL (secure sockets layer) は公開鍵暗号と共通鍵暗号、電子署名、公開鍵証明書などの技術を組み合わせ、暗号化による盗聴防止、改ざん・破損の検出、通信相手の証明などを一度に実現している通信技術。…

2008年3月22日(Sat) #SSL

共通鍵暗号

2008年3月22日(Sat) #AES

電子署名

電子署名 (digital signature) は文書に対する承認と、文書内容の保障を電子的に付け加えるための技術。公開鍵を使用することにより他人によって行われた署名でない事、署名された時点から文書内容に変更がない事の 2 点を証明することができる。…

2008年3月21日(Fri)

Swing

Swing はプラットフォーム依存のウィジェットに頼らず、全てのコンポーネント描画と状態の管理を Java で実装した GUI ライブラリです。元々 AWT の機能の薄さを補うために Sun が Netscape 社 (当時) と共同で開発した Java Foundation Class (JFC) という GUI ライブラリが J2SE 1.2 から標準となりました。…

2008年3月19日(Wed) Java 6

Rhino of JavaScript

Rhino は元々 Mozilla プロジェクトで開発されていた Pure Java 製の JavaScript (ECMAScript) エンジンです。JDK 1.1 からの長い歴史を持ち (そして一時期の暗黒時代を経て)、Java SE 6 の Scripting API 実装として標準バンドルされています。…

2008年3月15日(Sat) Java 6

Jython of Python 2

Jython は動的オブジェクト指向スクリプト言語 Python の Java 実装版です。java.net スクリプトプロジェクトの一つとしてとして開発が進められています。

2008年3月15日(Sat) Java 6

Abstract Window Toolkit

AWT (Abstract Window Toolkit) は初期の Java で標準として用意されていた GUI ライブラリです。それまでプラットフォームごとに使い方が異なっていたウィジェット (GUI コンポーネント) を抽象化し、Java から統一した標準 API として使用できるようにしています。…

2008年3月15日(Sat) Java 6

システムトレイ

Java SE 6 からシステムトレイ (タスクトレイ) が利用できるようになりました。メール着信のお知らせツール (biff) やウィンドウレスで常駐するアプリケーションで便利な機能です。…

2008年3月15日(Sat) Java 6

Berkeley DB

Berkeley DB はカリフォルニア大バークレイ校で開発されたデータベースライブラリ。データベースと言っても RDBMS のように SQL が使用できたり関連モデルで設計されているわけではなく、ファイル上にインデックス付けされたデータ構造をプロシジャ形式のインターフェースを用いて検索、更新出来るライブラリ (Database Manager) です。…

2008年3月4日(Tue) Berkeley DB

Scripting for the Java™ Platform

Scripting for the Java™ Platform は JSR 223 で標準化され Java SE 6 から導入されたスクリプト API。文字列や外部ファイルに記述されているスクリプトを Java 上で実行することができる。…

2008年3月1日(Sat) Java 6

Solaris 10 for x86 インストール

Solaris 10 8/07 for x86 のダウンロードから起動までの手順を解説する。なお作業は VMWare のゲスト OS として行っているため通常のインストールと異なる部分が若干あるかもしれない。…

2008年3月1日(Sat) Solaris 10

Solaris 10 セットアップ

導入直後の root ユーザのホームディレクトリは / に設定されているがセキュリティ面でも運用面でもろしくないので変更する。

2008年3月1日(Sat) Solaris 10

GIF 画像出力

米 Unisys 社が取得していた GIF の LZW 圧縮に関する特許が2004年6月20日に切れ Java SE 6 から GIF への出力がサポートされた。このページでは Java SE 6 の Image I/O を使用してアニメーション GIF を作成する方法について述べる。…

2008年1月27日(Sun) Java 6

Date and Time Formats

2007年8月16日(Thu)

XML Path Language (XPath) 2.0

2007年8月14日(Tue)

The Content-MD5 Header Field

2006年3月23日(Thu)

The Content-Disposition Header

2000年7月5日(Wed)

HTTP State Management Mechanism

1999年11月7日(Sun)

The Finger User Information Protocol

1999年10月22日(Fri)

The Internet Gopher Protocol

1999年10月18日(Mon)

The Internet Gopher Protocol

1999年10月18日(Mon)

SIMPLE MAIL TRANSFER PROTOCOL

1999年10月9日(Sat)

SIMPLE MAIL TRANSFER PROTOCOL

1999年10月9日(Sat)

Echo Protocol

1999年8月2日(Mon)

UTF-8, a transformation format of Unicode and ISO 10646

1999年7月8日(Thu)

Hypertext Transfer Protocol - HTTP/1.1

1999年6月11日(Fri)

Uniform Resource Locators (URL)

1999年3月21日(Sun)