2015-02-18

エフェメラルポート

TCP/IP でサーバに接続しようとすると、パケットを受信するためにローカル側にポートが自動で割り当てられます。
Windows では 1025~5000 番の範囲のポートが自動的に割り当てられると記憶していたのですが、それは昔の話で、Windows Vista あたりからは IANA が提唱する 49152~65535 番の範囲のポートが使われているようです。
エフェメラルポート - Wikipedia
http://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%95%E3%82%A7%E3%83%A1%E3%83%A9%E3%83%AB%E3%83%9D%E3%83%BC%E3%83%88

2015-02-14

ニューラルネットの活性化関数 その2

記事「ニューラルネットの活性化関数 その1」の閲覧数がそこそこあるので、近年の活性化関数も記しておきます。

(1) Rectified linear unit (ReLU)
(2) Maxout activation functions (Maxout)

以下、簡単に解説しますが、不正確な表現も含みますので、正確な解釈は論文を読んでください。

(1) Rectified linear unit (ReLU) について

活性化関数は、
f(x) = max(0, x)
で、x > 0 の時は f(x) = x、x <= 0 の時は f(x) = 0 となります。
導関数は、
x > 0 の時は f'(x) = 1
です。x <= 0 の時は f'(x) = 0 となるので、結合荷重は変化しません。

こんな簡単な活性化関数で大丈夫なのかと思われるかもしれませんが、隠れ層のユニットの数がそこそこあれば、問題ないようです。

詳しくは次の Wikipedia のページを参照してください。
Rectifier (neural networks) - Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/Rectifier_(neural_networks)
(2) Maxout activation functions (Maxout) について

活性化関数は、複数の異なる傾きと切片の直線関数 f(x) = ax + b の最大値 (max) を求めて凸関数を作り、凸関数と凹関数(=凸関数の上下が逆)を組み合わせて、様々な関数を近似するというものです。

詳しくは次の論文を参照してください。
[1302.4389] Maxout Networks
http://arxiv.org/abs/1302.4389

[関連記事]

2015-02-13

Java の InterruptedException の扱い方

Java の InterruptedException の扱い方は、IBM の developerWorks のサイトにある記事が参考になります。
Java theory and practice: Dealing with InterruptedException
http://www.ibm.com/developerworks/library/j-jtp05236/