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 とか、
 そのあたりを色々です。

今のところ、これでエラーは止まっている気がするので、
しばらく様子を見ることにする。
[PR]
# by xiaoxia | 2015-06-08 17:49 | コンピュータ関係 | Comments(0)
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% なら、
ある程度の余裕を持って識別境界が決定されていて、
オーバーフィッティングの心配はないと思っていいのかな。
[PR]
# by xiaoxia | 2015-05-20 19:35 | プログラム言語 | Comments(0)

人工知能の夢

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

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

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

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

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

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

私個人も、リンク先のページと同感で、
人工知能はまだまだ人を脅かすほどの「知能」はないし、
私が生きている間には
電気羊の夢を見るアンドロイドは完成しないだろう。
でも、世間の人々の「楽観的な妄想」は嫌いではない。
それは「あの頃、夢見ていた21世紀」なんだろうなと思う。
[PR]
# by xiaoxia | 2015-05-01 18:43 | コンピュータ関係 | Comments(0)
データサイエンティストというかデータ分析職に就くための最低限のスキル要件とは - 銀座で働くデータサイエンティストのブログ

上記はいつもお世話になっているブログです。
難しいことを簡単に書いているので、
いつも本当にすごいと思います。
難しいことを難しく書くのは、むしろ簡単だと思うんですよね。
(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とか入ってるし!
[PR]
# by xiaoxia | 2015-04-07 18:00 | 考える | Comments(0)
ミステリ風にしてみた。
いや、実際、原因は謎のままである。

OS: windows7 Enterprise SP1
Office: Microsoft Office Professional Plus 2013

はじめに


4/2 の朝、会社 PC を起動して、
Windows Update が 6 件当たって、
その中に、ずっと外していた IE11 があって
どうしようまあいいか、と思った朝。
(社内のイントラネットは IE11 は未対応)

MS word を起動したら、エラーメッセージが出た。
「この Microsoft Office は、ライセンス認証されていません。」
そんなはずはない。
自社はボリュームライセンスで MS 製品を使っている。
キー管理サービス (KMS) ライセンス認証を導入しており、
以前、自マシンに KMS のサーバも登録した。
そもそも、この Office をインストールしてから1年以上経っている。
認証されていないなら、もっと以前にエラーが出るはず。

突然消えたとしか思えない。

記念にキャプってみた☆
a0003075_17525784.png

最初に確認


KMS サーバは同ドメイン内の違うLANにある。
そして、自社の場合、多くのトラブルはプロクシ設定周りである。
ので、一応、以下を確認。
・IEのプロクシの設定
・IEの「信頼済みサイト」にドメインが登録されている
・netsh winhttp show proxy で WinHTTP 設定を確認

slmgr.vbs で確認


Windows ソフトウェア ライセンス管理ツール であるところの
slmgr.vbs コマンドを使って、
ライセンスを確認。

C:\Users\kasumi>cscript %windir%\system32\slmgr.vbs /dli
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.


名前: Windows(R) 7, Enterprise edition
説明: Windows Operating System - Windows(R) 7, VOLUME_KMSCLIENT channel
プロダクト キーの一部: AAAAA
ライセンスの状態: ライセンスされています
ボリューム ライセンス認証の有効期限: 259200 分 (180 日)

キー管理サービス クライアント情報
  クライアント コンピューター ID (CMID): xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
  登録 KMS コンピューター名: kms.example.co.jp:xxxx
  KMS コンピューターの拡張 PID: yyyyy-yyyyy-yyy-yyyyyy-yy-yyyy-yyyy.yyyyy-yyyyyyy
  ライセンス認証の間隔: 120 分
  更新間隔: 10080 分
  KMS ホスト キャッシュが有効です

C:\Users\kasumi>

ちゃんと KMS サーバも表示されるし、問題なさそう???
KMS サーバに ping を飛ばしてみたが、
ちゃんと ip reachable だった。

ospp.vbsで確認


Office 2013 Client Software License Management Tool であるところの
ospp.vbs コマンドを使って、
ライセンスを確認。

ospp.vbs コマンドは、office インストールディレクトリにある。
%ProgramFiles%\Microsoft Office\Office15\ とか。
長いので、以下、office インストールディレクトリを %insdir% で書いた。

■インストール済み全ライセンスの内容

C:\Users\kasumi>cscript %insdir%\ospp.vbs /dstatusall
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

---Processing--------------------------
---------------------------------------
SKU ID: zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz
LICENSE NAME: Office 15, OfficeProPlusVL_MAK edition
LICENSE DESCRIPTION: Office 15, RETAIL(MAK) channel
LICENSE STATUS: ---UNLICENSED---
ERROR CODE: 0xC004F014
ERROR DESCRIPTION: The Software Licensing Service reported that the product key is not available.
---------------------------------------
SKU ID: wwwwwwww-wwww-wwww-wwww-wwwwwwwwwwww
LICENSE NAME: Office 15, OfficeProPlusVL_KMS_Client edition
LICENSE DESCRIPTION: Office 15, VOLUME_KMSCLIENT channel
LICENSE STATUS: ---OOT_GRACE---
ERROR CODE: 0x4004F00D
ERROR DESCRIPTION: The Software Licensing Service reported that the application is running within the valid out of tolerance grace period.
REMAINING GRACE: 29 days (43102 minute(s) before expiring)
Last 5 characters of installed product key: BBBBB
    DNS auto-discovery: KMS name not available
    KMS machine registry override defined: kms.example.co.jp:xxxx
    Activation Interval: 120 minutes
    Renewal Interval: 10080 minutes
    KMS host caching: Enabled
---------------------------------------
---------------------------------------
---Exiting-----------------------------

C:\Users\kasumi>

MAK認証は使っていないので放置。
下のほうの、KMS認証で
SKU ID (Store Keeping Unit ID : 商品管理ID)は登録されているのに、
エラーコードが出力されている。
なんで?

■KMS認証の履歴

C:\Users\kasumi>cscript %insdir%\ospp.vbs /dhistorykms
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

---Processing--------------------------
---------------------------------------
Searching for KMS activation events on machine: XIAOXIA
Event ID: 12288

Coordinated Universal Time Written: 2015/03/30 4:54:56
ERROR/HOST: 0x00000000, 0x00000000, kms.example.co.jp
ERROR DESCRIPTION: N/A
---------------------------------------
Coordinated Universal Time Written: 2015/03/23 4:50:37
ERROR/HOST: 0x00000000, 0x00000000, kms.example.co.jp
ERROR DESCRIPTION: N/A
---------------------------------------
(中略)
---------------------------------------
Coordinated Universal Time Written: 2014/01/08 0:42:33
ERROR/HOST: 0x00000000, 0x00000000, kms.example.co.jp
ERROR DESCRIPTION: N/A
---------------------------------------
---------------------------------------
---Exiting-----------------------------

C:\Users\kasumi>

認証は週1回で行われているようだ。
前回も 2日前の 3/30 に、問題なくされたことがわかる。
時刻は UTC なので、日本時間の場合は +9 する。
大体、午後2時前くらいに認証してるぽい。
そうだったのか、知らなかった。

というわけで問題なし。

■再アクティベーション:解決

C:\Users\kasumi>cscript %insdir%\ospp.vbs /act
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

---Processing--------------------------
---------------------------------------
Installed product key detected - attempting to activate the following product:
SKU ID: wwwwwwww-wwww-wwww-wwww-wwwwwwwwwwww
LICENSE NAME: Office 15, OfficeProPlusVL_KMS_Client edition
LICENSE DESCRIPTION: Office 15, VOLUME_KMSCLIENT channel
Last 5 characters of installed product key: BBBBB
<Product activation successful>
---------------------------------------
---------------------------------------
---Exiting-----------------------------

C:\Users\kasumi>

キーも登録されているし、
KMS サーバも接続できるし、
今まで認証されてきた実績もあるので、
キーをアクティベーションすれば大丈夫だろうと踏んだ。
というわけで、アクティベーションしたら解決。

でもなんで突然こんなことに?
やっぱ Windows Update が原因なんじゃ?
[PR]
# by xiaoxia | 2015-04-02 18:26 | ソフトウェア | Comments(2)

ダメ女プログラマ&主婦&腐女子&バイオリン弾き


by 小霞