忘れてしまっていたので、メモ。
Visual C++ 2013 英語環境の場合。
メニューの [View]-[Property Manager] を選択する。Property Manager が開く。
右クリックのコンテキスト メニューから [Add New Project Property Sheet...] を選択して、新規プロパティ シートを追加する。
追加したプロパティ シートをダブルクリックする。
画面左の [Common Properties]-[User Macros] を選択して、[Add Macro] ボタンを押してマクロを追加する。
[参考]
My Private Adversaria: VisualC++ のマクロ変数を追加する方法:
http://myprivateadversaria.seesaa.net/article/118865951.html
Create user-defined environment variables (macros) - pinyotae:
https://sites.google.com/site/pinyotae/Home/visual-studio-visual-c/create-user-defined-environment-variables-macros
2015-04-01
2015-03-03
Visual Studio 2013 の git でリモート設定を削除する方法
Visual Studio 2013 の git でリモート設定を間違ってしまった場合の削除方法は下記のとおりです。
[Team Explorer] でホームアイコンを押して、[Unsunced Commits] を選択します。
[Actions]-[Open Command Prompt] を押します。
コマンドプロンプトで、「git remote -v」と入力して [Enter] キーを押します。
「origin ...」と表示されるのを確認します。
「git remote remove origin」と入力して [Enter] キーを押します。
コマンドプロンプトを閉じます。
[Unsunced Commits] の画面に [Publish to Remote Repository] が再び表示されます。
[Team Explorer] でホームアイコンを押して、[Unsunced Commits] を選択します。
[Actions]-[Open Command Prompt] を押します。
コマンドプロンプトで、「git remote -v」と入力して [Enter] キーを押します。
「origin ...」と表示されるのを確認します。
「git remote remove origin」と入力して [Enter] キーを押します。
コマンドプロンプトを閉じます。
[Unsunced Commits] の画面に [Publish to Remote Repository] が再び表示されます。
2015-02-18
エフェメラルポート
TCP/IP でサーバに接続しようとすると、パケットを受信するためにローカル側にポートが自動で割り当てられます。
Windows では 1025~5000 番の範囲のポートが自動的に割り当てられると記憶していたのですが、それは昔の話で、Windows Vista あたりからは IANA が提唱する 49152~65535 番の範囲のポートが使われているようです。
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) について
活性化関数は、
導関数は、
こんな簡単な活性化関数で大丈夫なのかと思われるかもしれませんが、隠れ層のユニットの数がそこそこあれば、問題ないようです。
詳しくは次の Wikipedia のページを参照してください。
活性化関数は、複数の異なる傾きと切片の直線関数 f(x) = ax + b の最大値 (max) を求めて凸関数を作り、凸関数と凹関数(=凸関数の上下が逆)を組み合わせて、様々な関数を近似するというものです。
詳しくは次の論文を参照してください。
[関連記事]
(1) Rectified linear unit (ReLU)
(2) Maxout activation functions (Maxout)
以下、簡単に解説しますが、不正確な表現も含みますので、正確な解釈は論文を読んでください。
活性化関数は、
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(2) Maxout activation functions (Maxout) について
http://en.wikipedia.org/wiki/Rectifier_(neural_networks)
活性化関数は、複数の異なる傾きと切片の直線関数 f(x) = ax + b の最大値 (max) を求めて凸関数を作り、凸関数と凹関数(=凸関数の上下が逆)を組み合わせて、様々な関数を近似するというものです。
詳しくは次の論文を参照してください。
[1302.4389] Maxout Networks
http://arxiv.org/abs/1302.4389
[関連記事]
- ニューラルネットの活性化関数 その3
http://sleepy-programmer.blogspot.jp/2016/02/3.html
2015-02-13
Java の InterruptedException の扱い方
Java の InterruptedException の扱い方は、IBM の developerWorks のサイトにある記事が参考になります。
Java theory and practice: Dealing with InterruptedException
http://www.ibm.com/developerworks/library/j-jtp05236/
2013-12-10
Visual C++ でバイトの順序を逆にする関数
Visual C++ でバイトの順序を逆にする関数
がランタイムに存在していたのを下記のサイトの記事で知りました。
_byteswap_uint64, _byteswap_ulong, _byteswap_ushort (CRT) http://msdn.microsoft.com/en-us/library/a3140177%28v=vs.71%29.aspx
がランタイムに存在していたのを下記のサイトの記事で知りました。
melancholic afternoon
http://homepage1.nifty.com/herumi/diary/1312.html#6
2013-11-13
ニューラルネットによる正規分布の学習
ニューラルネットによる正規分布の学習のビデオです。
以前 YouTube で見つけたのを思い出したので、紹介しておきます。
以前 YouTube で見つけたのを思い出したので、紹介しておきます。
artificial neural network / normal distribution
Artificial neural network learns normal distribution using back propagation
2013-10-23
Android と OpenCL と RenderScript
Andoid 4.3 では OpenCL が使えなくなっているそうです。
代わりに RenderScript というものがあるようです。
モバイル端末でGPUを使って演算できると、自宅で省電力な計算クラスタの構築に使えるので、発展を期待したいです。
代わりに RenderScript というものがあるようです。
RenderScript | Android Developersざっと見た感じでは、float4 型はありましたが、さすがに float16 型はないようです。
http://developer.android.com/guide/topics/renderscript/compute.html
モバイル端末でGPUを使って演算できると、自宅で省電力な計算クラスタの構築に使えるので、発展を期待したいです。
2013-10-19
Visual Studio 2013 がリリース
Visual Studio 2013 がリリースされたので、C++11 の対応状況を調べてみました。
あと、Git がデフォルトでサポートされているのもいい感じです。
C++11 Features (Modern C++)「Non-static data member initializers」や「Initializer lists」がサポートされたのがうれしいですね。
http://msdn.microsoft.com/en-us/library/vstudio/hh567368%28v=vs.120%29.aspx
あと、Git がデフォルトでサポートされているのもいい感じです。
2013-08-25
ニューラルネットのシグモイド関数と tanh 関数の関係
ニューラルネットの標準シグモイド関数と tanh 関数の関係は次のようになります。
標準シグモイド関数は、
\[ sigm(x) = \frac{1}{1 + e^{-x}} \]
です。
tanh 関数の別表現は、
\[ \tanh(x) = -1 + \frac{2}{1 + e^{-2x}} \]
となります。
よって、
\[ \tanh(x) = -1 + 2sigm(2x) \]
となります。
つまり、標準シグモイド関数の入力値を2倍にして、出力値の値域を (-1, 1) に引き伸ばした感じです。
関連
参考
標準シグモイド関数は、
\[ sigm(x) = \frac{1}{1 + e^{-x}} \]
です。
tanh 関数の別表現は、
\[ \tanh(x) = -1 + \frac{2}{1 + e^{-2x}} \]
となります。
よって、
\[ \tanh(x) = -1 + 2sigm(2x) \]
となります。
つまり、標準シグモイド関数の入力値を2倍にして、出力値の値域を (-1, 1) に引き伸ばした感じです。
関連
参考
- sigmoid(x) - Wolfram Alpha
- tanh(x) - Wolfram Alpha の Alternative representations
Subscribe to:
Posts (Atom)