人気ブログランキング | 話題のタグを見る

[win7]DNS の名前解決失敗のイベントログ

ログの名前:    System
ソース:      Microsoft-Windows-DNS-Client
日付:       2015/06/08 9:00:41
イベント ID:   1014
タスクのカテゴリ: なし
レベル:      警告
キーワード:    
ユーザー:     NETWORK SERVICE
コンピューター:  alpaca
説明:
名前 proxy.example.com の名前解決は、構成されたどの DNS サーバーからも応答がなく、タイムアウトしました。


イベントログをキレイにする企画第2弾。

このエラーは IPv6 絡みで出るエラーらしい。
解決方法は、以下の2つが多い。

(1) NIC の IPv6 を無効にする
「名前 ws.amazon.co.jp の名前解決は、構成されたどの DNS - マイクロソフト コミュニティ
http://answers.microsoft.com/ja-jp/windows/forum/windows_7-networking/%E5%90%8D%E5%89%8D-wsamazoncojp/d5eddf73-9742-49c0-8654-fbc93e8586e4
(2) レジストリ編集で IPv6 を無効化/優先度低
Windows 7 のイベントビューアに記録されたエラーに対処してみました 【 awgs Foundry 】
http://awgsfoundry.com/blog-entry-83.html#ev-errlog-09

私の場合は、
上記 (2) に加えて、
IPv4 のほうに指定していた DNS を
IPv6 のほうにもちゃんと指定することにした。
(たぶん IPv4 しか使ってないから放置していた)

ちなみに、IPv4 と IPv6 の変換はこんな感じ。

192.168.254.254 → ::FFFF:192.168.254.254

これでちょっと様子見。

追記:
結果として、原因は IPv6 まわりではなかったぽい。
というのは、上記の対処をして再起動したけれど、
同様のエラーが出たため。
proxy の名前解決をしなくていいように、
IP を直に指定したらエラーが出なくなった(当然)。

そのほか、proxy が実はちょっと違ったというのがある。
proxy.example.com だと周知されていたのだが、
windows のコマンドプロンプトで以下のコマンドを入力してみたら、
  > tracert proxy.example.com
最終的に、全然違う名前の proxy にたどりついた。
proxy.example.com は実体はないので、
そのために名前解決できないエラーになったのだろうと推測。

というわけで、最終的には、
そっちの全然違う名前の proxy の IP を直で指定した。
エラーは出ていない。
# by xiaoxia | 2015-06-09 17:52 | コンピュータ関係

[win7]assemblyIdentity の processorArchitecture の値 x64 が無効

assemblyIdentity の processorArchitecture の値 x64 が無効です、
というエラーが、イベントログに残っている。
時刻は不定で、ほぼ毎日。

ログの名前:    Application
ソース:      SideBySide
日付:       2015/06/08 12:24:11
イベント ID:    63
タスクのカテゴリ: なし
レベル:      エラー
キーワード:    クラシック
ユーザー:     N/A
コンピューター:  alpaca
説明:
"C:\Program Files\r-3.2.0\Tcl\bin64\tk85.dll" のアクティブ化コンテキストの生成に失敗しました。マニフェストまたはポリシー ファイル "C:\Program Files\r-3.2.0\Tcl\bin64\tk85.dll" 行 9 のエラーです。 要素 "assemblyIdentity" の属性 "processorArchitecture" に無効な値 "x64" が指定されています。


あちこち調べてみたが、あまり情報がない。
違うな、情報はあるが、解決策がない。

調べていて、以下のページに当たった。

<runtime> の <assemblyIdentity> 要素 - MSDN
https://msdn.microsoft.com/ja-jp/library/b0yt6ck0(v=vs.110).aspx
processorArchitecture
省略可能な属性。
"x86"、"amd64"、"msil"、または "ia64" のいずれかの値で、プロセッサ固有のコードを含むアセンブリのプロセッサ アーキテクチャを指定します。 値の大文字と小文字は区別されません。 この属性にこれ以外の値を割り当てると、<assemblyIdentity> 要素全体が無視されます。 「ProcessorArchitecture」を参照してください。


えええええ。
省略できるならエラー出さないでよー。
エラーレベルは INFO とか WARN とかくらいでいいのにー。
x64 という値が設定不可なので、怒られているということはわかった。
じゃ、設定すべき値に書き換えましょう。


というわけで、リソースエディタで書き換えた!
※良い子はあまり真似しないように。
 プログラムが起動しなくなる危険があるので、
 ちゃんとバックアップを取ってから、自己責任で!
※ちなみに、使っているリソースエディタは
 ResourceHacker とか ResEdit とか XNResouceEditor とか、
 そのあたりを色々です。

今のところ、これでエラーは止まっている気がするので、
しばらく様子を見ることにする。
# by xiaoxia | 2015-06-08 17:49 | コンピュータ関係

[win][R] libsvm のグリッドサーチ

libsvm (e1071) のグリッドサーチで2点ほど。
実行環境は windows です。

グリッドサーチの分割方法


グリッドサーチの際、常に分割は同じなのか。
例えば、 cross=3 と指定して、複数回実行したら、
常に同じデータが同じグループになって実行されるのか。
毎回ランダムなデータがランダムにグループ分けされて実行されるのか。

ソースを見てみたところ、
R で書かれたソース(tune.R)では、特にランダマイズされていなかったが、
C で書かれたソース(Rsvm.c)では、ランダマイズされていた。
windows で実行する場合は、
多分 R ファイルを実行するのではなく dll を呼んでいると思うので、
ということであれば、毎回ランダムなのだろうなぁと思う。
想像でしかないのだが。

グリッドサーチの結果の正答率


SVM のチューニングのしかた(2) - ほくそ笑む
http://d.hatena.ne.jp/hoxo_m/20110325/p1
で、以下のようにある。
グリッドサーチの結果としてベストパラメータを出力しています。上記のプログラムを実行すると、結果は下記のように出ました。
- best parameters:
gamma = 0.1 ; cost = 1 ;
accuracy: 97.33187 %

gamma=0.1, cost=1 の組合せのとき、正答率 97.3 % を出していることがわかります。

gamma=0.1, cost=1 のときに、cross=3 であれば、
3回の svm が実行されていると思うのだが、
accuracy は一体何の数字なのか。

割とあっさり 100% が出たりするが、
3回実行してそう簡単に 100% が出るとは考えづらいので、
加算平均ではないような気がする。
てことは、3回の中の最高正答率なのかなという気もするが、
100% のときは dispersion (分散)も 0 と出るので、
やっぱり加算平均かもしれない。

なわけで、ソースを見てみた。
結果、3 回実行の中での平均値を選択していた。
それはそれでなんかびっくり。
3 回実行を更に複数回す設定 (nrepeat) をしている場合は、
nrepeat 回の中での最小エラー率が選択されるので、
やっぱりエラー率は 3 個得られて、
そこから平均を出すぽい。

あっさり 100% が出ても、
平均を取った結果の 100% なら、
ある程度の余裕を持って識別境界が決定されていて、
オーバーフィッティングの心配はないと思っていいのかな。
# by xiaoxia | 2015-05-20 19:35 | プログラム言語

人工知能の夢

「人工知能に対する楽観的な妄想」はいつか来た道 - 銀座で働くデータサイエンティストのブログ

人工知能、AI とか言われる分野にン十年前からいるので、
これを読んで、あーそうだそうだと色々思った。
そのあたりをだらだらと。

昨今、「人工知能」がブームになっている。
たぶん、Deep Learning (深層学習)のお陰だろうと思う。
ざっくりに言うと、
意外に簡単なとうに枯れたような仕組みで、高い精度の画像認識ができた!
というものである。
その仕組みは画像認識でなくても使えるよね!というわけで、
ブームになっている
さらにその陰には、マシンパワーやネットワークの向上や、
計算の分散方法の研究成果なんかがあると思う。
でも、その前は長いこと陽の目を見ない冬の時代が続いていた。

人工知能の先には、やっぱりロボットの夢がある。
日本人は御一新の前から、からくり人形なんかが大好きなわけだが、
欧米人は人間に似せた人形(ひとがた)を作ることに、
なんだかものすごく抵抗があるらしい。
人を作るのは神の領域であって、侵すことは禁忌なのだろう。
Deep Learning が出てくるまで、
脳の機能を模倣しようとしたニューラルネットワークの研究が
流行っていなかったのも、
心理的抵抗があったのじゃないかと思う。
(Deep Learning の仕組みの基本はニューラルネットです)

しかし、Deep Learning は突然出てきたわけではない。
冬の時代にもニューラルや人工知能の研究を継続してきた人がいたからだ。
売れないものに喜んでお金を出すような会社は、あまりない
(会社でない、例えば国立の機関などでも、お金はそちらに流れません)
だから、そういう研究者は、
別の研究の陰で、研究費をやりくりしながら、
こっそりと人工知能の研究をしてきた。
研究者が「そこに夢がある」と思うからこそ、頑張ってやりくりする。
たぶん、色んな所に色んな研究者がいて、色んな夢を見ているのだろう。
中には、ずっと冬のままで、枯れてしまう夢もあるのだろう。

いま、Deep Learning はバブルと言っていいほど、もてはやされている感がある。
そして以前にも、カオスだの、ファジィだの、複雑系だのと、
もてはやされた言葉がたくさんあった。
20 年以上前に購入したウチの洗濯機にも
「ニューロ」というボタンがある。
白物家電にボタンが付くくらい、それらの言葉は消費された。
そうしてそれらの言葉は、昨今では研究分野以外ではほぼ出会わない。
人工知能や Deep Learning も、そのように消費されていくのかなと思う。

私個人も、リンク先のページと同感で、
人工知能はまだまだ人を脅かすほどの「知能」はないし、
私が生きている間には
電気羊の夢を見るアンドロイドは完成しないだろう。
でも、世間の人々の「楽観的な妄想」は嫌いではない。
それは「あの頃、夢見ていた21世紀」なんだろうなと思う。
# by xiaoxia | 2015-05-01 18:43 | コンピュータ関係

データ分析職の素養について

データサイエンティストというかデータ分析職に就くための最低限のスキル要件とは - 銀座で働くデータサイエンティストのブログ

上記はいつもお世話になっているブログです。
難しいことを簡単に書いているので、
いつも本当にすごいと思います。
難しいことを難しく書くのは、むしろ簡単だと思うんですよね。
(wikipedia なんかは良い例かと)

で、上のブログを見て、私も考えました。

現在、私は主にデータ分析ぽい業務をしています。
開発をやっていたはずなのに、
どういうわけだか、こんな分野にいます。
部署としては開発の部署なので、、
「データ分析を元にしたシステム開発」という感じ。
なので、バリバリにデータ分析しているわけではありません。
バリバリ分析の部署もありますが、
そちらの人たちは本当に研究者です。

私の部署での業務では、こんな感じです。
・お客さんの要求と、処理速度と精度の兼ね合いを見て、
 「ちょっと精度は落ちるけど、速いからOK」とかを考える
・少数の人しか理解できないようなステキ理論より、
 「説明されれば中学生でもわかる」レベルの実装仕様を考える
 (難しい理論は、実装も難しいし、テストも難しいので)

実装を見据えた分析をするわけです。
時には、プロが見たら卒倒しそうな邪道な実装をすることもあります。
でも、決められた期間で作ることができて、
要求される速度で動いて、実装もテストもメンテも楽なら、
お客さんはそれでOKなわけです。
お客さんが欲しいものは、別にステキ理論ではなくて、
ちゃんと動くものです。

上司たちは、データ分析ができる人を増やしたいようです。
バリバリ開発するでもなく、出世も興味がないけれど、
ほどほどなんでもやります、みたいな私のようなお姉さん社員が
データ分析できるといいなぁと思っているようです。
(そりゃ戦力になってくれたら上の人たちとしては嬉しいよね)
でもなかなか人材が見つかりません。
私個人が考えている、データ分析チームに来てくれるといいなぁと
思っている人について、書いてみます。
(いよいよタイトルの内容!前置き長い!)

(1)地道な作業が苦でない人

データ分析はかなり地味で、単純作業も多いです。
そういうのが合わない人は多いみたいです。
明確な完成というのもないし、
完成しても何かが動くわけではないので、
プログラム書くよりも、達成感が少ないんですよね。

(2)「ベクトル」という言葉に嫌悪感がない人

「ベクトル」という言葉はよく出てきます。
「特徴量」とか。

私は根っからの文系なので、
理系の人はみんな「ベクトル」なんてちょろいのだと思っていました。
でも、そうでもないらしくて、
理系の人でも、「ベクトル」と聞くとテンションがダダ下がるという人が
結構いるみたいです。
先日も、ベクトルの内積の説明を1分ほどしたら、
みるみる目がウツロになっていく人がいて、
あーそうなんだーと思いました(笑

また、文系の人でも、
数式にあまり抵抗がない人が良いです。
私は抵抗があった方ですが、見慣れると見慣れます。
でも式の意味はいまだに全然わからないのですが(笑

(3)スクリプトが書ける人、コマンドラインが怖くない人

データ分析では、よく DB を使います。
ので、SQL が書けると良いです。
Hadoop HDFS なんかだと ruby を書くのでしょうが、
まだ RDB が多いので、 SQL のほうが出番が多いです。
ほぼコマンドラインなので、そういうのが怖くない人が良いです。

また、データ整形は多いです。
全部のデータを10倍する、みたいなものも多いです。
perl でも ruby でも python でもいいので、
簡単なスクリプトが書けると良いです。
書けなくても良いので、「そういうの無理です」と言わない人が良いです。

excel もよく使います。
excel は勝手に表示形式を変えてしまう
(年月日形式とか、小数点以下を勝手に減らしたり)ので、
エディタで操作することも多いです。
ノートパッド以外の、秀丸でもサクラでもterapadでもいいので、
使えるエディタがあると良いです。
データは文字コードもバラバラだったりするので、
そういう時も、エディタは必須です。
また、大きすぎて開けないファイル、というのも良くあります。
そういう時は、more や less や head や tail などを駆使して、
ファイルの中を見るということもあります。
やっぱりコマンドラインです。

SPSS などが使えることが重要と思う人もいるかもしれませんが、
数年前に一緒に仕事をしたデータ分析見習いの人は、
SPSS は使えるけど、データ前処理が全然処理できなかったので、
結局、分析ではそれほどの戦力になりませんでした。
(分析結果報告書を書く段には、その人の知識が大活躍しましたが)
世の中、キレイなデータのほうが少ないので、
SPSS などに入れるためのデータを作る作業は、ほぼ必ず発生します。
そのために、Python や SQL やコマンドラインを使います。
得意な人に分担してもらうこともできますが、
自分でできた方が、自分で考えた分析にすぐ着手できます。

上のほうでも書きましたが、
中学生でもわかる、ちゃんと動くシステムが欲しいわけで、
そういう時は、生データをあれこれして、
あれこれやってみる、という Try&Error が多いのです。

(4)学ぶことに抵抗のない人

初心者であるほど、ほぼ勉強ばかりです。
どんなジャンルでも勉強は必要ですが、
このジャンルは特に、統計とか、学校の勉強風の内容が多いです。
ので、学ぶことが多くてうんざりする人や、
確率統計だけは仲良くなれる気がしないという理系の人は、
あまり向かない気がします。



個人的には、統計の知識はあると良いし、
機械学習の知識もあると良いけど、
そういうのはOJTで覚えていけば良いと思っています。
それよりも、その人の性格とか好みとかが影響するなぁと思っています。

ちなみに、ウチのバリバリ分析部署の人たちは、
大学で研究していた院卒の専門家ばかりなので、
上記ブログの「最低限」でも全然足りないかも(笑)

XXX

ブログのタイトルと合わなくなってきたかもなぁと、
大分前から思っていました。
でもま、いいか、みたいな。
プログラムを書くのは好きなので、
仕事とは別に、ちょこちょこ書いたりしています。
ムダにAndroid Studioとか入ってるし!
# by xiaoxia | 2015-04-07 18:00 | 考える