私の関わりのある法人
ksbutton.png omemebuttan.png sowerbuttan.png
※このブログに書いていることは、私の関わりある法人の意見ではなく、
 あくまでも、私個人の意見です。

2018年01月07日

JavaScriptのプログラムを初めてやってみた



 昨日、Node-RED でプログラムするにも JavaScript の知識が必要なのか・・・とわかったので、今日、この本を買って来ました。


 今まで「小学生から始める」とか「絵本」とかの題がついてる本でも、全然そんなことないぞ、難しいぞ、と思うことが多かったのですが、この本の著者になってる TENTO というのは小学生や中学生向けのプログラミング教室をやってるところとのことで、本当に小学生でもやる気になるかもしれないと思わされました。

 JavaScript って、Web用のプログラミング言語として開発され、HTML の中で使うみたいですね。

 で、今日やったのはこんなの。

 いろんなアラート(警告)を使って文を出したり、

スクリーンショット 2018-01-07 23.05.37.png

 こっちは名前の確認したり。

スクリーンショット 2018-01-07 23.06.27.png

 で、ここで名前の確認をして、その名前に対して挨拶を返したり。

 その後の分岐のところの応用で、こんなページを作り、

「これは うんこ の絵ですか?」

と尋ねて true が返ってきたら「正解!」、それ以外だと「ブブーッ!」というアラートの出るページを作ろうと思いました。
(この例は本には出てきません。勝手に私が考えた)

スクリーンショット 2018-01-07 23.09.01.png

 で、うまくいったら私のホームページにアップしようと・・・
 でも動きませんでした・・・^^;

 こんなスクリプトなんですけどね。
ーーーーーーーーーーーーーーー
<script>
var kakunin = confirm("これは うんこ の絵ですか?");
if (kakunin == true) {
alert("正解!");
} else {
alert("ブブーッ!");
}
</script>
ーーーーーーーーーーーー
で、また、「これは うんこ の絵ですか?」だけなら出るんですけど、しかしその時「絵」が出てこなくて、答えてから「絵」が出るという・・・それじゃ絵を見て答えられないじゃないか・・・

 まあでも面白そうです。

 がんばったら、私が昔から作りたかった「じゃんけん」が作れるかも。





posted by kingstone at 23:31| Comment(0) | ネット・パソコン・携帯など | このブログの読者になる | 更新情報をチェックする

2018年01月06日

Node-RED を使ってみる



 今まで、Node-RED 関連ではこんなことをやって来ました。





 で、今日は自分でノードをあれこれさわってフローを作って動かしてみようと思いました。

 この本を見ながら、あれこれやってみました。



 ターミナルから「node-red」というコマンドを打ち込んで、そこで出てきた URL を Chrome の検索窓の入れて出てくるのがこの画面。

スクリーンショット 2018-01-06 14.45.39.png

 左サイドバーみたいなところを「パレット」と呼びます。
 そこに並んでる付箋みたいなのが「ノード」
 真ん中が「ワークスペース」
 右サイドバーみたいなところが「ノード情報ウィンドウ」と「デバッグ・ウィンドウ」がタブで切り替わるようになっています。


 で、この「ノード」を「ワークスペース」にドラッグアンドドロップし、それぞれのノードの端っこ同士をドラッグしてつないでいき、処理のひとかたまり「フロー」を作ります。

 一番上の「ノード」は「inject」

注入する、注射する、(…に)導入する、織り込む、(…に)さしはさむ

 要するに「入力」ってことでいいのかな?

 なお、これを調べてて


というものがあるのを知った。こわ・・・

 で、このノードをワークスペースにドラッグアンドドロップすると、最初は名前が「timestamp」になる。
 もともとタイムスタンプを取得する機能がデフォルトになってる。
 このノードをダブルクリックすると、こんなウィンドウが開いて、何を入力するか変えることができる。

スクリーンショット 2018-01-06 14.46.56.png

 ここは、最初のタイムスタンプを選ぶ。

 で、この小ウィンドウを操作した場合は右上の赤い「完了」ボタンをクリックすること。

 出力の「debug」と書かれたノードをワークスペースにドラッグアンドドロップすると「payloard」という名前に変わる。
 これはデバッグ・ウィンドウにペイロード(荷物)としておろされる、出力される、という意味かな。

@乗客・貨物などの有料荷重。
A航空機やミサイルの有効搭載量,搭載物。
Bロケットの打ち上げの性能を示す指標の一。所定の高度に打ち上げることのできる人工衛星の重量。
C人件費。

 で、入力ノードの左端のボタンをクリックすると・・・

スクリーンショット 2018-01-06 14.50.25.png

というふうにデバッグ・ウィンドウに「1515217795096」という数字が出てきてて、これで正解らしいのですが、なんのこっちゃ?

データはJSONという形式で流れていく。
JSONって「ジェイソン」と読むんだろうか?

JSON (JavaScript Object Notation)は、軽量のデータ交換フォーマットです。 人間にとって読み書きが容易で、マシンにとっても簡単にパースや生成を行なえる形式です。 JavaScriptプログラミング言語 (ECMA-262標準第3版 1999年12月)の一部をベースに作られています。

とのこと。

 しかし・・・あとノードを変えていろいろやってみたのですが、うまくいかないこともあったり、何より、


の知識が必要みたい・・・

 うーーむーー

 ノードを組み合わせればOK、という話では無いのだな・・・



posted by kingstone at 22:08| Comment(0) | ネット・パソコン・携帯など | このブログの読者になる | 更新情報をチェックする

2017年12月29日

Node-REDのノードを日本語表示に対応させる手順



 表題の記事を見つけたのでリンク。



 しかし・・・むつかしそうだなあ・・・


posted by kingstone at 23:31| Comment(0) | ネット・パソコン・携帯など | このブログの読者になる | 更新情報をチェックする

2017年12月09日

畳み込みニューラルネットワーク(Roboco 機械学習講座)



今日は Roboco の「AI講座」というか「機械学習講座」

テーマは

畳み込みニューラルネットワーク
(Convolutional Neural Network:CNN)

昨日、とりあえず勉強したところでは

画像を分割して細かく処理することで、ニューロンの数はそのままにつながりだけを減らし、処理をシンプルにする。

これについては
1975 コグニトロン(cognitron)
1979 ネオコグニトロン(Neo cognitron)
とか福島 邦彦 (Kunihiko Fukushima)氏のアイデアが生かされているらしい。


ネオコグニトロンの回路構造は、生理学の実験に基づく古典的な階層仮説をヒントにして考案された。図1のように、細胞の層を何段も階層的につないで組み立てた多層の神経回路である。この回路の中には、図形の特徴を抽出するS細胞の層と、特徴の位置ずれを吸収する働きを持つC細胞の層とが交互に並んでいる。S細胞、C細胞という呼び名は、それぞれが大脳の第1次視覚野に見られる単純型細胞(simple cell)と複雑型細胞(complex cell)に似た性質があるところから、その頭文字をとったものである。 

で、これが面白いのだけど、S細胞は「エッジ(形の特徴)」をピタッと抽出するのだけど、C細胞は「ファジーにする」というか「細けえことはいいんだよ」という処理をする。その2つが相まって「認識」できるようにするわけね。

で、
元画像→畳み込み→プーリング→畳み込み→プーリング
と「畳み込み」と「プーリング」という作業を繰り返し最終出力に至る。

この「畳み込み」の処理がS細胞にあたり、「プーリング」の処理がC細胞にあたる。

なんか「きっちり勉強」と「ええかげん」の協力によって「認識」の実際の役に立つ、というのがめっちゃ面白い。


Perceptron は「知覚」
Cognitron は 「認識」

ネオコグニトロン
  ・winner-take-all (総取り)
  ・add-if-silent  (反応しなけりゃ反応するニューロンを付け足す)



posted by kingstone at 22:54| Comment(0) | ネット・パソコン・携帯など | このブログの読者になる | 更新情報をチェックする

2017年12月08日

人口知能がまるごとわかる本 田口和裕・森嶋良子著




第4章 AIを支える技術と仕組み

のメモ

1956 ダートマス会議でジョン・マッカーシーにより
   「 Artificial Intelligence 」と命名された。
   (Intell ってここから来てるのか?!)

OR辞典:日本オペレーションリサーチ学会での定義
「人間や生物の知能を、機械によって実現したもの、あるいはその研究分野。具体的には、コンピュータを処理の中心とし、各種入出力機器を結合したシステムである」

IT用語辞典バイナリによる定義
「人間の知的営みをコンピュータに行わせるための技術のこと、または人間の知的営みを行うことができるコンピュータプログラム」

 ここでいう人間の「知能」とは「学習」「認識・理解」「予測・推論」「計画・最適化」などを指すが、そもそも「知能」という言葉が指し示す範囲が広すぎるため、AIの定義が異なる場合も多い。

 なるほど。
 そらそうやろな。

1950年代、1980年代にブームが来たが、当時は処理能力やセンサーの能力不足、アルゴリズムの未開発などによってブームが去った。今、やっと普及・活用されるようになってきた。

弱いAI Narrow AI 特化型人口知能 例。Alfpha Go
強いAI Artificial General Intelligence 汎用型人口知能
    これはまだできていない。
    鉄腕アトムの世界だよな。

みずほ情報総研のAIの4レベル
1.制御 センサーからの情報による自動運転。(温度管理など)
2.推論 大量のデータから推論(チャットボット。エキスパートシステムなど)
3.機械学習 サンプルデータを元に学習し、新たなデータについて自動的に判断してアウトプット(検索エンジン。チェスプログラムなど)
4.ディープラーニング 人の介入なしに自律的にルールや特徴を学習してアウトプット(画像認識。音声認識。自然言語処理など)

チャットボット
1966 ELIZA (MITにいた、ジョセフ・ワイゼンバウム開発。いわゆる人工無能)

辞書型
ログ型
生成モデル型(マルコフ連鎖。RNN)

教師あり学習とは
   大量の正解ラベル付きデータを読み込ませ、学習させる。

教師なし学習とは
   正解・不正解が無い。
   途中が完全にブラックボックス化し、とんでもない結果が出てくることも。


機械学習のフェーズ
クラス分類(教師あり学習)
回帰・予測(教師あり学習)
クラスタリング(教師なし学習)
情報圧縮・最適化(教師なし学習)
レコメンデーション(教師あり学習・教師なし学習)


強化学習
教師あり学習のように明確な「正解」は提示されず、「報酬」を与える。
(ABAの強化と一緒やん)
ゲームの技能向上と相性がいい
DeepMind の AI(Alpha Go も)
DQN ATARIのブロック崩しをプレイする

脳のニューロン(神経細胞)
形式ニューロン(パーセプトロン)

ディープラーニングの技術の根幹
   ↓
バックプロパゲーション
(データの流れを逆にたどって、どこで間違ったかを確認し、チューニングしていく。もちろん自動で)

過学習(over-fitting)
勉強しすぎて判断基準が厳しくなりすぎ、未知のデータに対する汎用性が無くなり、運用すると精度が下がること。
(めっちゃ実生活でありそう・・・)

畳み込みニューラルネットワーク
(Convolutional Neural Network:CNN)
画像を分割して細かく処理することで、ニューロンの数はそのままにつながりだけを減らし、処理をシンプルにする。

回帰結合型ニューラルネットワーク
(Recurrent Neural Network:RNN)


posted by kingstone at 19:33| Comment(0) | ネット・パソコン・携帯など | このブログの読者になる | 更新情報をチェックする