前回の記事
で書いた通り、日本がアメリカと戦争する事になったのはルーズベルトが打ち出した植民地の自由市場化・共同管理システム(後に「国際連合」と呼ばれる)に日本が「実現しないだろう」と賛同しなかったからである。
ルーズベルト政権が日本に出したハルノートはルーズベルトの脱植民地政策の一部を表現したものにすぎず、彼の政策ーつまり国際連合という植民地の共同管理システムーに日本が賛成協力しなかったことが日米太平洋戦争の本質なのである。
アメリカがハルノートや大西洋憲章で日本に提案していたのは
・中国の植民地化をやめて日米の自由貿易を推進しよう(最恵国待遇)
・将来的には全世界の植民地を解体して自由市場にしよう(国際連合・GATT)
というものであり植民地を持たぬ者ー日本として国益にかなうものばかりであった。
しかるにハルノート陰謀説や自衛戦争説は完全な的外れであり、そういった言説が出てくるのは日本の教育の失敗と言える。日本が受け入れるかどうかを検討すべきはハルノートではなく、大西洋憲章を含めたルーズベルトの戦後構想そのものなのだ。
国際政治を理解する上で重要なのは、植民地大国イギリスの覇権に自由貿易主義のアメリカと新興植民地主義国である同時に日本が挑戦する形になったという事実であり、盧溝橋事件でどっちが先に開戦したとかソ連のスパイの陰謀がどうこうはミクロの話であって誰が覇権を握るかというマクロに殆ど影響しないものだ。
2020年6月18日木曜日
日米は戦争せずに「脱植民地」で協調することが可能だった
旧来、文明の遅れた非工業国は植民地として工業国に支配され経済を不平等にコントロールされるのが通常であった。産業革命以来、イギリスやフランスは「帝国」として全世界に植民地を有しており世界は半独占的な経済システムで構成されていた。ところが19世紀末に台頭してきた新興国であるアメリカの打ち出した「門戸開放」による中国進出が後に世界の貿易システムを根底から作り変えることになる。
1922年、アメリカが中国と列強に対して締結させた「九カ国条約」は
・中国市場の門戸開放(自由競争)
・中国の領土や主権の保全(民族自決)
を謳っており、従来の独占的・支配的な植民地システムとは一線を画するものだった。
1931年、植民地を持たざる者である日本が満州事変を起こして中国大陸の植民地化を始めた。アメリカや国際社会はこれが九カ国条約違反であるとして日本に警告する。
1941年、植民地の取り合いが第二次大戦を引き起こすと危惧していた米大統領ルーズベルトによって全世界の植民地を解体して自由市場として先進国が共同管理する構想が打ち出される。このシステムこそが戦後の「国際連合」であり、中国に対する九カ国条約の自由競争・共同管理システムを全世界へ発展させたものなのだ。
同年、日本はこの提案を拒否して東アジアに独自の経済圏を建設する事を表明し日米戦争に突入する。ルーズベルトの「国際連合」が誰でも参入できる開かれた市場であるのに対して日本の「大東亜共栄圏」は宗主国である日本がマーケットを独占するという従来型の「帝国」に過ぎなかった。
→ 敗戦後、アメリカの指導で憲法改正が行われたが憲法前文に「自国のことのみに専念して 他国を無視してはならないのであって」の一文が入れられたのはこれによる。
ただ、ルーズベルトの「国際連合」は植民地の争奪戦争を終わらせる素晴らしいアイデアであったが、イギリスやフランスが植民地をタダで手放すとは考えにくく、日本が「実現しないだろう」と考え拒否してしまったのも無理からぬものがある。実際、後発の植民地主義国である日本やドイツが先発の英仏を戦争により弱体化させ、既存の植民地維持を困難にさせたのがルーズベルトの「国際連合」方式への移行を加速させる一因になったことは否定できない。その点を強調すれば日本に対する先の大戦の非難は幾分和らぐかも知れない。
ルーズベルトの「国際連合」方式は自由競争で新たな市場を獲得したいアメリカと植民地を持たぬ者である日本にとって利益が合致するシステムであり、日本はアメリカと戦争せず協力して脱植民地の時代を作っていく選択肢もあったのである。
以上
1922年、アメリカが中国と列強に対して締結させた「九カ国条約」は
・中国市場の門戸開放(自由競争)
・中国の領土や主権の保全(民族自決)
を謳っており、従来の独占的・支配的な植民地システムとは一線を画するものだった。
1931年、植民地を持たざる者である日本が満州事変を起こして中国大陸の植民地化を始めた。アメリカや国際社会はこれが九カ国条約違反であるとして日本に警告する。
1941年、植民地の取り合いが第二次大戦を引き起こすと危惧していた米大統領ルーズベルトによって全世界の植民地を解体して自由市場として先進国が共同管理する構想が打ち出される。このシステムこそが戦後の「国際連合」であり、中国に対する九カ国条約の自由競争・共同管理システムを全世界へ発展させたものなのだ。
同年、日本はこの提案を拒否して東アジアに独自の経済圏を建設する事を表明し日米戦争に突入する。ルーズベルトの「国際連合」が誰でも参入できる開かれた市場であるのに対して日本の「大東亜共栄圏」は宗主国である日本がマーケットを独占するという従来型の「帝国」に過ぎなかった。
→ 敗戦後、アメリカの指導で憲法改正が行われたが憲法前文に「自国のことのみに専念して 他国を無視してはならないのであって」の一文が入れられたのはこれによる。
ただ、ルーズベルトの「国際連合」は植民地の争奪戦争を終わらせる素晴らしいアイデアであったが、イギリスやフランスが植民地をタダで手放すとは考えにくく、日本が「実現しないだろう」と考え拒否してしまったのも無理からぬものがある。実際、後発の植民地主義国である日本やドイツが先発の英仏を戦争により弱体化させ、既存の植民地維持を困難にさせたのがルーズベルトの「国際連合」方式への移行を加速させる一因になったことは否定できない。その点を強調すれば日本に対する先の大戦の非難は幾分和らぐかも知れない。
ルーズベルトの「国際連合」方式は自由競争で新たな市場を獲得したいアメリカと植民地を持たぬ者である日本にとって利益が合致するシステムであり、日本はアメリカと戦争せず協力して脱植民地の時代を作っていく選択肢もあったのである。
以上
2019年4月12日金曜日
スマートスピーカーのある生活 Amazon echo編
![]() | |
Amazon echo spot (壁紙は千桃の稲生滸) |
私の部屋はLEDシーリングでリモコンでON/OFFや明るさ調整ができるのですが、布団に入っちゃうとリモコンで電気を消すのが億劫になってそのまま寝ちゃう事が多いんです。
そこで、音声で家電を操作できるスマートスピーカーを去年12月から導入しています。
Amazon echo dot (第3世代) +家電操作モジュールNature Remo
ウェイクワードは「アレクサ」「アマゾン」など四種類が選べますが、一番短い「エコー」をチョイス。 「エコー、電気消して!」と言うだけでNature Remoを経由して明かりを消してくれます。これで部屋が明るいまま寝てしまう事がほぼ無くなりました。
あと目薬タイマとしても活用しています。今まではわざわざiPad開いてタイマアプリ開いて開始ボタンを押していたのですが、echo買ってからは「エコー、二分」で済むようになりました。(「二分」と言うと2分後に通知してくれる定形アクションを組んだ)
Amazon echo dotの不満点
・ウェイクワードをはっきり発音しないと認識してくれない
・天気を聞くと、どうでもいい乾燥注意報だのを毎回聞かされる
ちなみに画面付のAmazon echo spotも買ってみました(トップの写真参照)。好きな絵や写真を時計盤の設定できるのはいいんですが、時計として致命的な問題があるんです。
・「お勧めの使い方」が定期的に表示される。(設定で消せない)
時計が見たいのに時刻じゃなくて「お勧めの使い方」が表示されてるとブチ切れたくなります。これは時計として致命的。
・同様に、天気を聞くと画面に天気情報が表示されますが、音声が終了してもしばらく時計の画面に戻らない。これも地味にウザい。
やっぱりスマートスピーカーは音声で対話が完結してこそですね。
画面付スマートスピーカーは音声操作AIの敗北を感じます。
2018年10月20日土曜日
大長編ドラえもんは少年向けから幼児向けにシフトした論
先日、2019年公開の映画ドラえもん「のび太の月面探査記」が公開されたようですね。
この機会に大長編ドラえもん全体の感想をまとめておきます。(ただし映画ではなく漫画版)
各作品の評価(S,A,B,C,Dの5段階)
1 のび太の恐竜 A
2 のび太の宇宙開拓史 B+
3 のび太の大魔境 B
4 のび太の海底鬼岩城 A
5 のび太の魔界大冒険 A
6 のび太の宇宙小戦争 A+
7 のび太と鉄人兵団 A
8 のび太と竜の騎士 S
9 のび太の日本誕生 B+
10 のび太とアニマル惑星 A+
11 のび太のドラビアンナイト B
12 のび太と雲の王国 S
・13作目からは幼児向けへシフト
残念ながら、私が大長編ドラの集大成と位置づける「雲の王国」を最後にこのシリーズは別物になってしまったと考えています。それは12作目までは硬派なSFや冒険が好きな少年向けだったのが、13作目の「ブリキの迷宮」から次第に幼児向けにシフトしてるように見受けられたからです。もっとも「ブリキの迷宮」は第一次世界大戦をモチーフにした戦闘機や戦車など世界観はさすが藤子先生と思わせる面もあるのですが、そもそも迷宮自体の存在意義が微妙ですしロボット反乱のネタも過去作とかぶり、ラストのコンピュータウィルスでボスロボットが「イートマキマキ」するシーンが4作目の海底鬼岩城のボス打破のシーンとは明らかに別の読者層、つまり小学校低学年かそれ未満をターゲットにしてるように感じるのです。ターゲット低年齢化の傾向は迷宮以降も続き、特に16作目ではのび太が敵を石鹸水の入った水鉄砲(!)でやっつけるシーンがあるのです。初期作ではショックガンを駆使して生きるか死ぬかのアクションを繰り広げていたのび太が水鉄砲ではねえ…。
13 のび太とブリキの迷宮 C
14 のび太と夢幻三剣士 C
15 のび太の創世日記 B
16 のび太と銀河超特急 C
17 のび太のねじ巻き都市冒険記 C
18 のび太の南海大冒険
19 のび太の宇宙漂流記
20 のび太の太陽王伝説
21 のび太と翼の勇者たち
22 のび太とロボット王国
23 のび太とふしぎ風使い
24 のび太のワンニャン時空伝
総括としては、12作目「雲の王国」を最後にSF冒険活劇としての大長編ドラえもんは終わってしまったかなと考えます。最新作「月面探査記」が大人でも楽しめる作品であるといいな。
この機会に大長編ドラえもん全体の感想をまとめておきます。(ただし映画ではなく漫画版)
・1~12作目はSF冒険好き少年向け
大長編ドラえもんの魅力は学校生活の日常から抜け出して宇宙や秘境やら非日常の舞台を冒険するワクワク感にあるわけですが、大長編ドラは「てんとう虫コミックス」のキャッチフレーズ「SF=すこしふしぎ」の枠に留まらずガチなサイエンスフィクション入ってる所が当時の対象読者である小学校中~高学年男子の心に響いたんじゃないかと思っています。例えば「宇宙小戦争」で宇宙空間を行くスネ夫の戦車がピリカ星に着陸するため衛星に紛れて自由落下するも地震計に着陸の振動が記録されず敵に見破られるとかSF的な描写がアツく、また「竜の騎士」では謎の地底世界そのものや四角い聖域の伏線がクライマックスで恐竜絶滅とその回避に繋がっていく壮大さは圧巻でした。私の中で藤子F先生が描くSFドラの集大成と位置づけているのは「雲の王国」です。本作は環境破壊がテーマでありノア計画で地上文明をリセットしようとする天上人の国とドラ達が駆け引きするなどとにかくスケールが大きい。特にドラえもんが「雲もどしガス」で交渉に備えようとするシーンはいかに地上文明の未来かかっているかが伝わってきて緊張しました。各作品の評価(S,A,B,C,Dの5段階)
1 のび太の恐竜 A
2 のび太の宇宙開拓史 B+
3 のび太の大魔境 B
4 のび太の海底鬼岩城 A
5 のび太の魔界大冒険 A
6 のび太の宇宙小戦争 A+
7 のび太と鉄人兵団 A
8 のび太と竜の騎士 S
9 のび太の日本誕生 B+
10 のび太とアニマル惑星 A+
11 のび太のドラビアンナイト B
12 のび太と雲の王国 S
・13作目からは幼児向けへシフト
残念ながら、私が大長編ドラの集大成と位置づける「雲の王国」を最後にこのシリーズは別物になってしまったと考えています。それは12作目までは硬派なSFや冒険が好きな少年向けだったのが、13作目の「ブリキの迷宮」から次第に幼児向けにシフトしてるように見受けられたからです。もっとも「ブリキの迷宮」は第一次世界大戦をモチーフにした戦闘機や戦車など世界観はさすが藤子先生と思わせる面もあるのですが、そもそも迷宮自体の存在意義が微妙ですしロボット反乱のネタも過去作とかぶり、ラストのコンピュータウィルスでボスロボットが「イートマキマキ」するシーンが4作目の海底鬼岩城のボス打破のシーンとは明らかに別の読者層、つまり小学校低学年かそれ未満をターゲットにしてるように感じるのです。ターゲット低年齢化の傾向は迷宮以降も続き、特に16作目ではのび太が敵を石鹸水の入った水鉄砲(!)でやっつけるシーンがあるのです。初期作ではショックガンを駆使して生きるか死ぬかのアクションを繰り広げていたのび太が水鉄砲ではねえ…。
13 のび太とブリキの迷宮 C
14 のび太と夢幻三剣士 C
15 のび太の創世日記 B
16 のび太と銀河超特急 C
17 のび太のねじ巻き都市冒険記 C
18 のび太の南海大冒険
19 のび太の宇宙漂流記
20 のび太の太陽王伝説
21 のび太と翼の勇者たち
22 のび太とロボット王国
23 のび太とふしぎ風使い
24 のび太のワンニャン時空伝
総括としては、12作目「雲の王国」を最後にSF冒険活劇としての大長編ドラえもんは終わってしまったかなと考えます。最新作「月面探査記」が大人でも楽しめる作品であるといいな。
2018年5月6日日曜日
tiny-dnnでディープニューラルネット超入門
最近話題のディープニューラルネットを使って色々応用できたらいいなぁと思ったのでtiny-dnnを使って入門してみることにしました。tensorflowとか有名どころのnnプラットフォームはみんなpythonなので、C++で使えるtiny-dnnは数少ない選択肢で非常に有り難いです。以前、仕事で画像判別にOpenCV機械学習ライブラリのCvANN_MLPを使ったことあるので似たようなクラス判別処理のスケルトンをtiny-dnnで実装してみます。
このtiny-dnnですが、C++11のテンプレート機能をゴリゴリ使っているためコンパイラがかなり最近のものに限定されます。
どんなニューラルネットを作るか?
以下のような単純な4次元の入力データを4つ用意し、それぞれクラス0,1に分類するだけの超簡単なクラス判別NNを作成してみます。
S1 = [1,0,1,0] ; クラス0
S2 = [0,1,0,1] ; クラス0
S3 = [1,1,0,0] ; クラス1
S4 = [0,0,1,1] ; クラス1
入力データが4次元なので入力層は4点、 クラスが2つなので出力層は最低2点あれば良いことになります。
また、一層のパーセプトロンでは線形判別できないので、中間層は32点結合の3層としました。
#define _SCL_SECURE_NO_WARNINGS
#include <tiny_dnn/tiny_dnn.h>
using namespace tiny_dnn;
using namespace tiny_dnn::layers;
void main(int argc,...)
{
//-------------------------------------------------------------
// ニューラルネットの構造を定義
//-------------------------------------------------------------
network<sequential> net;
net << fc(4, 32) << activation::tanh()
<< fc(32, 32) << activation::tanh()
<< fc(32, 32) << activation::tanh()
<< fc(32, 3) << activation::softmax();
//-------------------------------------------------------------
// 学習データ(ベクトルの次元 = 入力層の点数)
//-------------------------------------------------------------
vec_t sample1;
vec_t sample2;
vec_t sample3;
vec_t sample4;
sample1.assign(4, 0);
sample1[0] = 1;
sample1[2] = 1;
sample2.assign(4, 0);
sample2[1] = 1;
sample2[3] = 1;
sample3.assign(4, 0);
sample3[0] = 1;
sample3[1] = 1;
sample4.assign(4, 0);
sample4[2] = 1;
sample4[3] = 1;
std::vector<vec_t > trainData;
std::vector<label_t> trainLabels;
trainData.assign(4, vec_t()); // クラス分類数
trainData[0] = sample1;
trainData[1] = sample2;
trainData[2] = sample3;
trainData[3] = sample4;
// 教師データ
// 学習サンプルがどのクラスに属するかを教示するデータ。
// クラス番号は 0 to 出力層の点数M-1 の範囲。
trainLabels.assign(4, 0);
trainLabels[0] = 0;
trainLabels[1] = 0;
trainLabels[2] = 1;
trainLabels[3] = 1;
//-------------------------------------------------------------
// 学習実行
//-------------------------------------------------------------
adagrad optimizer;
if (!net.train<mse>(optimizer, trainData, trainLabels, 1, 200))
{
printf("train - error");
return;
}
//-------------------------------------------------------------
// 未知データを判定
//-------------------------------------------------------------
for(int i=0;i<trainData.size();++i)
{
printf("predict #%d\n", i+1);
tensor_t result;
std::vector<vec_t> unknownData;
unknownData.assign(1, vec_t());
unknownData[0] = trainData[i]; // 学習に使ったデータを判定してみる
result = net.predict(unknownData);
vec_t vec = result[0];
for (int i = 0; i < vec.size(); ++i)
printf("Class%d : %0.2f\n", i, vec[i]);
printf("\n");
}
このtiny-dnnですが、C++11のテンプレート機能をゴリゴリ使っているためコンパイラがかなり最近のものに限定されます。
- C++ Builder XE3 … 少し古いためC++11が部分対応なのでコンパイル不可
- Visual C++ 2017 … コンパイラのテンプレート展開のバグらしく、不可解なエラーが出てコンパイル不可
- Visual C++ 2015 … 正式に対応が謳われているため問題なし
どんなニューラルネットを作るか?
以下のような単純な4次元の入力データを4つ用意し、それぞれクラス0,1に分類するだけの超簡単なクラス判別NNを作成してみます。
S1 = [1,0,1,0] ; クラス0
S2 = [0,1,0,1] ; クラス0
S3 = [1,1,0,0] ; クラス1
S4 = [0,0,1,1] ; クラス1
入力データが4次元なので入力層は4点、 クラスが2つなので出力層は最低2点あれば良いことになります。
また、一層のパーセプトロンでは線形判別できないので、中間層は32点結合の3層としました。
#define _SCL_SECURE_NO_WARNINGS
#include <tiny_dnn/tiny_dnn.h>
using namespace tiny_dnn;
using namespace tiny_dnn::layers;
void main(int argc,...)
{
//-------------------------------------------------------------
// ニューラルネットの構造を定義
//-------------------------------------------------------------
network<sequential> net;
net << fc(4, 32) << activation::tanh()
<< fc(32, 32) << activation::tanh()
<< fc(32, 32) << activation::tanh()
<< fc(32, 3) << activation::softmax();
//-------------------------------------------------------------
// 学習データ(ベクトルの次元 = 入力層の点数)
//-------------------------------------------------------------
vec_t sample1;
vec_t sample2;
vec_t sample3;
vec_t sample4;
sample1.assign(4, 0);
sample1[0] = 1;
sample1[2] = 1;
sample2.assign(4, 0);
sample2[1] = 1;
sample2[3] = 1;
sample3.assign(4, 0);
sample3[0] = 1;
sample3[1] = 1;
sample4.assign(4, 0);
sample4[2] = 1;
sample4[3] = 1;
std::vector<vec_t > trainData;
std::vector<label_t> trainLabels;
trainData.assign(4, vec_t()); // クラス分類数
trainData[0] = sample1;
trainData[1] = sample2;
trainData[2] = sample3;
trainData[3] = sample4;
// 教師データ
// 学習サンプルがどのクラスに属するかを教示するデータ。
// クラス番号は 0 to 出力層の点数M-1 の範囲。
trainLabels.assign(4, 0);
trainLabels[0] = 0;
trainLabels[1] = 0;
trainLabels[2] = 1;
trainLabels[3] = 1;
//-------------------------------------------------------------
// 学習実行
//-------------------------------------------------------------
adagrad optimizer;
if (!net.train<mse>(optimizer, trainData, trainLabels, 1, 200))
{
printf("train - error");
return;
}
//-------------------------------------------------------------
// 未知データを判定
//-------------------------------------------------------------
for(int i=0;i<trainData.size();++i)
{
printf("predict #%d\n", i+1);
tensor_t result;
std::vector<vec_t> unknownData;
unknownData.assign(1, vec_t());
unknownData[0] = trainData[i]; // 学習に使ったデータを判定してみる
result = net.predict(unknownData);
vec_t vec = result[0];
for (int i = 0; i < vec.size(); ++i)
printf("Class%d : %0.2f\n", i, vec[i]);
printf("\n");
}
2018年2月12日月曜日
2017年7月28日金曜日
艦これ プライズフィギュア SPM朝霜をゲットした
登録:
投稿 (Atom)