2024年2月13日火曜日

RustのASTを出力する方法

 RustでASTの仕様を調べたくなったので、試したところ旧い情報で現在は使えないようなので、ここにメモしておきます。

rustc +nightly -Z unpretty=ast-tree ターゲットファイル名

ググってみても、AIでもなかなかたどり着けなかったので、この機能がなくなってしまったと思ってしまいました。(そんなわけないか)


2020年6月19日金曜日

地震や天候を観察していて思うこと

COVID-19が流行してから半年が経とうとしています。
ヤフーの記事でも昨年末にCOVID-19について1回記事になっていたので、
気になり昨年末に「ペスト」でググったことがあります。
そうしてから約1ヶ月後には巷ではパンデミックと感じた時期が、WHOよりも
早く認識しだした感じでした。
なにか世界的にSNSがあってもうまく政治が機能していない様子かと思う今日このごろです。

そんな中で、地震も地球温暖化で地球が温まっている為なのか?
地震が頻発しているので、YouTubeあたりになにかおもしろいライブがないか
検索してみると、やはり世界では先進的な内容をリアルタイムに流している団体
がありました。

SPECTORNETと言う用語自体は、オブジェクト間の指標を指す言葉ですでに使われているようですが、この団体は地震だけでなく他にも色々指標を提供しているようです。

そんなわけでSPECTRONET ORGの
「Live Earthquake and Volcano Monitor」を数ヶ月観察していて感じたことを少し書いてみました。

1 地震は地球規模では頻繁に発生していて、たまたま人間があまり住んでいないところで起きているので、我々が生活できていること。
2 地球も一つの物体なので、当然一箇所で比較的に大きい地震が発生すると、地続きで地震は伝わる。
3 大きな地震ほど地球規模でこの地震は残り、しばらくは振動となって観察される。
4 たまに、地球のかなり離れた連動があるようだが、必ずではない。(例えばCOSTARICAとJAPANの連動性)
5 日によって地球全体が安定している時期もあり、そうでない日もある。
6 地震速報よりも何らかの兆候が周辺でおきているかも?(勝手な推論)

詳細にはこの仕組が解っていないので、今は単純に見た感想を書いてみました。

地震について気になっている方は、注目に値する情報だと思いました。


追記:20200627
この記事を書いた時は、ニュージランドの地震がきっかけで書いたところ、メキシコと日本でも続けてM6〜7の巨大地震が発生しています。
何やら気象衛星の雲の様子も今年はインド洋がかなり高温になっているためか、次々と水蒸気が雲となっている様子が伺われます。
これからは特に地球が温暖化に加速していく現象が明確になる年と予想されます。
とにかく今までの体験で一番暑い夏と現在なっています。

追記:20200706
また長野県中部で起きている地震が頻発していて、N or M or S JAPANに地震波が観測される頻度が増えたようです。
TVでは水災害で危険な地域には住まないほうが良いと評論家が発言しているが、果たしてこれからの日本で本当の意味で安全な場所がどれだけ残されているのでしょうか?
疑問が残る問題です。

追記:20200708
7月3日から通算5日間雨と風が台風の時のように、音を立てて日本の広範囲で断続的にまるで攻撃しているかのような現象が起きている。
これを全球の英税写真で見ると、まるでインド一体で湧き出た雲がフィリピンまでつながった巨大雲群一体から大量の水分が供給されていて、中国から日本そして樺太までつながる巨大な川のような雲をつくっている様に見える。
今回の現象はやはり地球規模の天気の予想を立てないと、今までのような地域を縛ったものでは無理だと思います。

追記:20200710
更に気象衛星の全球の動画を見ると、ニュージーランド付近からの雲の流れが南半球の熱を、一度インド付近まで運んで来ているように見える。
巨大なトライアングルが赤道を中心にして、熱の対流ができているのではないかと、思える映像である。一体こんな流れはいつまで続くのであろうか?

追記:20200722
今日でわずか1ヶ月も立たない間に、M7以上の地震が3回も起きている。
しかも広範囲で発生している。
ありえない。

追記:20200723
再度確認してみると
20200618 日本時間21:50 ニュージーランド付近 M7.4
20200619 石垣島 M5.1 M5.5
20200624 日本時間00:29 中米 M7.7
20200625 日本時間04:47 千葉東方沖 M6.2
20200706 日本時間21:59 マリアナ諸島 M5.8
20200709 日本時間14:14 択捉島南東沖 M5.0
20200717 日本時間11:50 ニューギニア諸島 M7.3
20200720 日本時間14:25 宮古島近海 M5.0
20200722 日本時間15:13 アリューシャン列島 M7.8
でした。

追記:20200726
地球の雲の様子を見ていると、南極の周りで大量に巨大な雲の渦が発生している。
インド洋周辺で相変わらず超巨大雲群が1.5ヶ月近く居座っている。
今ではアジア全体で雲が見られるようになっている。
こんな状況で日本の梅雨が終わるとはとても思えないのですが。
こう考えるのは自分だけなのか?

追記:20200728
20200726 日本時間09:53 南大西洋 M6.3
20200728 日本時間05:07 チベット自治区 M6.3
追記:20200730
20200730 日本時間09:36 鳥島近海 M5.8

追記:20200802
今日の地球は、南極からの大量の巨大雲群の放出、
そして北極のグリーンランドからの雲もかなり発生している。
これだけでも温暖化の兆候がはっきり現れているように思えるのは確か。

追記:20200806
20200805 日本時間09:05 南太平洋M6.4
20200806 日本時間02:54 茨城県沖M5.6

追記:20200810
南極を中心に地球の約40%を占める雲の雲群が見られるが、
何という水分量なのでしょうか?
それにしても今は南半球は当然冬なのですが、これは何かの始まりでしょうか?
そこで、南極やオーストラリアの天気予報を確認してみると別段なにもないようです。

追記:20200902
インド洋の雲は一度は消えそうになったが、又6月中旬の状態に戻ったようです。大量の雲が観察される。
地震はM6級が4回ありました。
日本近海でも2つの非常に強い台風が発生しています。

追記:20210224
久々に追記しますが、赤道付近から南回帰線あたりに巨大な雲の帯が観察されています。
サモアからインド洋付近まで、地球の1.4万キロ(約130度)にかけて存在しています。
M6の巨大地震も増えましたが、どうやら今年は昨年よりも大変な夏を迎えるようです。

追記:2023/3/12
今年は、巨大地震が多発している。火山の噴火とその兆候
本日のアースの雲の様子は、今まで見たものと比較して何か違う感じがする。
ブラジルには非常に多くの雲が覆いかぶさっている。
中国から南半球にまで連なる雲の列。

2019年3月29日金曜日

遺伝子情報の世界

遺伝子情報なんて何年かまえには、複雑でデータ量が大きい単なる暗号文字の世界かと思っていました。

近頃、バイオインフォマティクスとはなんであるか少しづつ気になっていましたが、今では遺伝子情報の一部が公開されたHPがあることにリンクをたどっていくうちに見つけました。
当然遺伝子のワードを目的に検索すればすぐたどり着けるとは思います。

内容はタームが英語しかないです。これは遺伝子情報が新規なものであるから当たり前ですが、長いアルファベットの文字ばかりが並ぶ独特の雰囲気がサイトにはあります。

なにやら怖いバクテリアみたいな単語が存在しています。これは毒性が高い遺伝子情報なので特別取り上げられているのではと、勝手に推察しました。
とにかく普通に遺伝子情報が圧縮ファイルでダウンロード可能になっていました。
素人の私にはなにか不気味な印象を技術資料で初めて受けました。

小さい頃よく顕微鏡でプランクトンを写真撮影したころを思うと、ここまで生物について人類は探求してしまったのかとつくづく考えることとなりました。

これはSFの世界ではなく、現実に今存在している世界です。

追記:20190410
遺伝子関係の特許文を読むと、どうやら現在は遺伝子情報は完全に情報処理の時代のようです。
例えば、NCBI(国立生物情報センター)の情報は無料で
バイオインフォテックの情報を提供しているようです。

追記:20190709
遺伝子関係がどのような現状世界かが分かる情報は、生物工学会のHPにアクセスするといいようです。
ここでサイトを眺めてみて、
キーワードは、RDF(SPARQL)とNGSと感じました。

2019年3月28日木曜日

特許の世界

今AI時代になり、特許の分野が激変する時期に入ろうとしている。

例えばバイオ関係の特許を眺めてみると、化学の物質名とその量の詳細、遺伝子に関係した詳細な話し等、とても人間業とは思えないような特許明細を見つけることができる。
果たして、この内容を誰がどれだけ完全に把握できているのでしょうか、システムの仕様書よりも複雑かもしれません。

もちろんこんな複雑な特許ばかりではないので、年間32〜40万件程度、日本でも提出されているようです。
世界では既に年間250万件もの特許件数で、もはやこれを管理することは人間業だけでは無理といえよう。

こんな文書は、プロセッサなしでやることではないと考えられますが、今までは人間業でやってきたのでしょうか。

日本の特許庁も日本語での提供と、機械翻訳での英語の明細の公開を始めました。2019年5月からはニューラル機械翻訳を使いより協力になるようです。

試しに眺めてみると、英語の翻訳はまだ完成ではないようです。翻訳できない単語はマスクされていて、文書も英語なのに変なところが大文字で始まり、明らかに不思議な文書になっています。
これは元々特許請求の文面が日本語でも複雑に記述されている性質の為仕方がないのかもしれません。
ところがこれを国際特許に単純に英語に翻訳し、そのまま提出すると、どうやら有効な請求項になっていないので、ガードのためにはある程度有効でしょうが、影響力は限られたものになってしまっているようです。

もはやAI化の波は世界的に広がっているようで、世界的な機関やEUの特許サービスのサイトでも、英語ばかりではなく10種類以上の言語を機械翻訳してくれます。もちろん今は完成していないので、変な日本語でしか表示してくれませんが、昨日だけは既に存在しています。

将来はこの文書を更にAIが読み込んで、再利用する日ももう近くに迫っていることが実感できました。

それにしても日本のサイトよりも、USAやEUのサイトのアクセスが早いことには驚かされました。

追記:20190329
日本のサイトでの日本語と英語の特許文を調べていたら、同じ特許文でありながら、請求項の数が合わないものがあります。請求項は特許の要なので、なぜなのでしょうか?
特許文の特徴は、明細文に番号が振られているところだと思う。
もう一度プログラムで解析しなおしたところ正確に合致していました。
もちろん検索が主目的で、分類記号が詳細に定義されていて、国内と国際で統一されていないところが効率が悪いことですが、日本固有のものが存在するので仕方がないかもしれません。
WIPOは、独自(英語のみ)の機械翻訳とGoogle翻訳(複数言語)、その他2つが選択可能ですが、残念ながらその他は動作を確認できませんでした。
翻訳はシーケンスではなくて、リアルに翻訳が行われているようで、結構なCPUの負荷がサーバサイドでかかっている様子でした。申し訳ないので、今回試したのは日本の特許1件を対象にして使ってみました。
EPOでは、英語しか選択できませんが、翻訳結果は瞬時に結果を返しました。

追記:20190410
特許文を眺めていると、今までにない世界が存在していることが解る。例えば遺伝子情報関係の特許文などは門外漢の私は、全てが暗号記号にしか見えない。それでも現在は特許文に書いてあるURLのサイトをアクセスすると、そこから又情報の連鎖が始まる。
R言語やProlog言語で遺伝子情報を解析して勉強できる時代はもう来ていると感じた。

追記:20190425
Google Patentsをアクセスしてみると、とんでもなく簡単に全文検索や対訳文にアクセスできてしまう。
又、パテントファミリーを探す上でも簡単です。
日本の特許庁での不自由さは全く無い。
Googleの時間短縮度は抜群なようです。
すでに次のステップへとこの世界は歩みだしていたことを知りました。
それにしても中国の登録件数の多さには驚きを感じます。
追記:20190507
以下の2点で英語中心の対訳データが取得不可能です。
アラビア語はSAとJOの2国が存在しているが、タイトルと概要を読むことが可能。
当たり前の話ではあるが、HINDI語はインドが英語で特許を扱っているので全く存在しない。

追記:20190515
日本の特許庁の検索機能が新規にリニューアルされました。
早速検索しましたが、ページの構成は以前のものよりも改善されていました。日英の翻訳文も改善されているようです。
でもとても応答が遅く10年前に戻ってしまったようです。
やはり平日の昼間はアクセスが大量で無理なのかもしれません。
今後次第に改良されてくれることを期待したいです。

追記:20190526
今やUSがCNの知財権を批判しているが、CNの申請件数をみるとCNが将来世界一になる可能性が予想できる。この時JPはどうするのか、内容の詳細を検討した結果ではないが、申請件数を見る限り驚異を感じる状態であることは確かにある。

2019年2月12日火曜日

Coq言語に勢いを感じる

Coqについて検索してみると、面白い研究がなされているようです。

Coqは自動証明ができるプログラム言語で以前から興味がありましたが、改めて注目したい言語のようです。

既に、Haskellの抽出可能なようです。何故変換という言葉を使わないのか疑問に感じ少し調べてみましたが、多分ロジックの意味のある部分だけのコードを抽出するようです。

自分は以前からDSLやPrologでプログラム変換を思考してきたので、Coqでも同様のことが行えるので期待できる手法だと強く感じました。

2019年1月8日火曜日

システム開発でのAI化?

今まで、システム開発での直接のAI化はまだはじまっていないと考えていました。

これはどうやら間違いかもです。

 SEQ2SQL: GENERATING STRUCTURED QUERIES FROM NATURAL LANGUAGE USING REINFORCEMENT LEARNING

これから進化すれば、やがてAI化が始まる予兆を感じました。
でもこれは商用での開発なので当たり前なのかもしれません。
これから、システム屋もAIとの戦いが始まったのでしょうか。

追記:20190109
SQLについての最近の動向は以下の論文に掲載されていました。
DialSQL: Dialogue Based Structured Query Generation
ここで対象になっているNLIDBとRNNの話題は注目するべきことだ思った。
追記:20190110
WikiSQLはSeq2SQLから得られたものらしいが、このライセンスは別で、ある程度利用することができるらしい。
有用なリソースであると思う。
追記:20190427
特許をGoogle Patentsで調査したところ、日本からの「ソフトウェア」と「システム」の単語で検索したところ2016年以降発明件数が見つからない。これは従来のシステム開発では新しい手法ではない、AI化が既に始まっていることを示唆しているのではないかと考える。

2018年12月29日土曜日

圏論について学ぼう

圏論が大変重要な数学になりつつあることは、今やネットでもよく聞く話ですが、どうも書籍を読んでも意味的にはりかいできますが、証明を読んでいく気にはならない。

そこで、とても解りやすい解説をなさっている動画を見つけましたので、ここで紹介しておきます。

https://www.youtube.com/watch?v=hbaNIIDPf24
6-5. 圏論とHaskellは仲良し - 大森 健児

です。この講義の先頭の半分が圏論についてお話しなさっていますが、大体10分程度でまとめていますが、私にとっては、他に類を見ないほど明快に説明がされています。

これで圏論がどのようなものかイメージしやすくなりました。大森健児氏に大変感謝いたします。

追記:20190102
圏論を数学者は数学的厳密性が必須であるが、
個人的には厳密性は不要だと考えている。
またその能力もない。
それよりも射、つまり関係性だけを使い定義された数学的思考で出発したことで、数学全体に影響を与えている現象そのものが本当の圏論の哲学的意義だと感じる。
何故ならば、圏論で証明されたことでシステム化されたものは、素晴らしく簡潔に且つ最適化されたシステムだと考えられるからだと思う。
こんなことを今までシステム設計やアルゴリズムを試行している経験を通して、圏論に対し最重要性を感じるからです。
追記:20190106
wikiにHaskell/圏論があり、モナドの説明を読むと以外に理解できることを知る。
今まで、ログを出力するのにモナドが必要であることが、数学だからそこまで工夫が必要なのだと勝手に納得していました。
そもそもインミュターブルな仕組みで且つ、数学的な厳密性を持たせた場合、果たしてログが取得できるのであろうかという問題がある。観測される系に対して何の影響も与えてはいけないからだ、哲学的には無理な気がする。
そこでモナドが登場する。予めモナドが影響を与えないことを数学的に証明しておいて、これで安全に数学的に矛盾なくログを取れることになります。
やはり圏論は面白い感じだなと思った。

2018年11月15日木曜日

等価変換について

等価変換の思想や手法はかなり旧くからあるようですが、結局人間はこの手法を使い技術を進歩させてきたように考えるようになった。

作曲家が言っているのですが、「作曲家の作業も、エディタの要素が存在する」と、これは等価変換をさしているのではないかと考える。

近年圏論が数学の頂点に立つことが目につくようになってきましたが、これも汎化の究極の世界で、直接対象ばかりを細分化(分類)していくよりも、関係(射)を研究することにより、数学的本質を探求していることだと考える。

もちろんシステム開発なんかは、一番当てはまる。
今ではアセンブラなんか使いコードを書いている人は殆どいない。高級言語を使い、CPUやGPUで何を詳細にしているのか解らなくても、プログラムは組めてしまう。今はまだ、システム設計が技術的に確立していないので、各自バラバラに設計がなされているが、近い将来証明がなされた形式手法がかくりつされると信じている。
その時はコーダーは何をすればいいのでしょうか?

AIも今は、NLPでは言語をエンコードして数値にしてから解を求めているが、ドメインを細分化させたり、数値化されない前の情報をもっと使いこなせれば、もっと成功すると考えているようになった。

辞書なんかは、等価変換のほかに何者でもない気がします。
辞書を作成している人達は、意味を説明していると考えていまるのでしょうが、用法なんかも使う側からすると、等価変換で自分の文書の言葉に、置き換えて使うことになります。
又、現実的に辞書に直接載っている言葉では言葉を探せません、近い言葉に置き換えて使っています。

NLPについても、今まで旧来の文法解析等に縛られていましたが、AIのニューロン系のアルゴリズムや統計解析で、文法ばかりではない、「言葉のことは言葉に聞け」のやり方は、等価変換のことを指していると考えられます。

これからは、「等価変換と圏論」の思考を方法論としていこうと考えている。

追記:20181116
言語処理のモデルとして、次のことを考えてみた。
「システムで使われる意味とは、単に意味を示している単語を指すこと」だと考える。
翻訳しかり、文書の内容要約も同じように、別の単語群で指し示すことだと考える。ただし、この時必ず、等価変換が存在している。

2018年5月11日金曜日

AMRについて

Abstract Meaning Representation
のことですが、
NLPをやっている人は皆が知っている技術と推察しますが、
今日まで知りませんでした。

どうやら色々な事情があるようです。

Ontology,WordNet,Word2Vecの順で自然言語の
概念が進化してきていますが、
本当はAMRはここの仲間として登場するべきものでした。
2013に登場したようなので、
Word2Vecと同時期に注目される技術だと勝手に考えます。

AMRとは、
自然言語の意味を中心に、
中間言語AMR(あらかじめ用意されたノードタグ)に変換して使う規格で、
単語を有向非巡回ノードに変換できる情報を持ちます。
予め意味を人間が定義したもので構成されているので、
このノードに落とし込めば、
自動的に意味が取り出せる仕組みになっていると思います。
パーサーもあるようです。
現実の翻訳ツールとして使う場合は、
欠点があり同じ単語が出現した場合は、
弱いようで複雑な文にも対応ができないようです。

概念は理解できるので、
何か体験できるツールがないか探したところ、
JAMRというツール群がありました。

JAVAで動作させるようで、
とはいってもScalaもついてきます。
巨大6GBもあるモデルをダウンロードしてから起動してみましたが、

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
        at edu.cmu.lti.nlp.amr.AMRParser$$anonfun$main$3.apply(AMRParser.scala:358)
        at edu.cmu.lti.nlp.amr.AMRParser$$anonfun$main$3.apply(AMRParser.scala:211)
        at scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(TraversableLike.scala:772)
        at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
        at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:108)
        at scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:771)
        at edu.cmu.lti.nlp.amr.AMRParser$.main(AMRParser.scala:211)
        at edu.cmu.lti.nlp.amr.AMRParser.main(AMRParser.scala)
でエラーファイルに怒られました。
ここではこれ以上調査しないことにします。

他にもサイトを調べました。
1.日本ではT大ともう一つの大学で論文が数件あるようです。
2.2014年から2017年までの結構多数論文が出ている。
3.大量のモデルが定義されている。多分英語はほとんど網羅しているのでは?
4.理論的には面白いし、地道な技術であると思った。
5.モデルの内容を確認したところ、RDFのコア+実例のような、意味ノードの辞書のような感じを受けた。

何やら残念な結果に終わりましたが、
Word2Vecで体験したインパクトはなさそうです。
NLPとして使うには、
少し問題があり、
意味を中心においているので、
表現できない部分があるようです。

とはいえ、
PropBankを継承した考え方である、
AMRはしっかりした理論的基盤の元に規格化されたものなので、
今後もNLPへの貢献を期待できる技術だと思う。


2018年4月30日月曜日

word2VecとfastTextはNLPの基礎

色々AIの調査をしているが、NLP関係で現在現場で一番活躍しているのは、このword2Vec(Vecと省略)とfastTextだと思う。
理由を上げてみると、

1.NN系のアルゴリズムを使っている。
2.GPUを利用しなくても動作する。
3.大量データを扱うのが目的。
4.趣味的にもNLP研究のツールとして使える。
5.ベクトル化、数値化した情報
6.オントロジーやタクソノミーとして利用できる。
7.生の文書(日本語は分かち書きが必要)を扱う。
8.他のAIツールのリソースの生成に役立つ。
9.NLPのDB(QAエンジン)としても使える?
10.利用するのが簡単
11.文法に関係している情報も分類できる
12.少量のデータでも利用が可能

もう既に誰にでも名前が知られたツールなのでここで説明をする必要がないのですが、大体自然言語の基礎的な情報を取得できる。
もしかしたら、他にも利用できることがあるかも?
どうやら、ググやYouTubeでも隠喩ですばらしさを表現している人も沢山いるので、あえて書きます。

Vecを実データで試してみると、明らかに文章中のベクトル化に成功していることに、まさしくマジックをみることになります。

一方OpenNMT(ニューロンを使った翻訳ツール)を試して見ると確かになるほどとは感じますが、NLPの分野では豊富なデータも個人では持っていないので、実用的なところまでは程遠いことを思い知ることろです。
もちろんAIの勉強にはなりますが、むしろGPUを自由に使えない環境では、ストレスを感じてしまいます。

現在大手がこのツールを使っていることは、想像するまでもありませんが、今後もこの分野がNLPの中心になっていくことと予想できます。
NMTで固定長、エンコードや文法問題を抱えたまま長文や文書全体の課題を、Vecが見事に解決してくれます。
現状はNMTが主流になっているようですが、Vecを何らかの形で連携することは必須と考えられます。

IT関係者でなくても誰でも恩恵が受けることが可能なツールで、是非一度お使いになることをお勧めします。
もしかして、「基礎に始まり基礎に終わる」てなこともありますよね。

追記:20180502
文法について使いたいならば、Doc2Vecをお薦めします。
文の中の語順を考慮していますので、より文法規則が正確に取得できているようです。

追記:20190518
NLPの基礎技術という考え方では、もう一つ重要な技術としては、SMTの分野で有名なMosesとGiza++があることを追加します。
これは、SMT翻訳とNMT系の翻訳とがお互いに協力弱点を補い合って行うことで、より完全な人間に近い翻訳ができるようになるからです。


2018年4月28日土曜日

YouTubeで技術習得

もう何度もこの内容でブログに書いてきたが、再度取り上げる。

大体新しい技術の分野を習得したければ、一番早いのは既にその知識を熟知している人に教えてもらうことが一番早いことは誰でもが知っていることだ。
でも最先端の技術だとどうだろう、中々熟知している人が見つからない、そこでセミナーが存在している。
でもセミナーが毎日開かれているとは限らないし、場所も限定しているのが現状だ、ましてや個人的な興味の場合には、お金が掛かる。

そこで、書籍もあるがもしかすると、まだ英語でしか出版されていない場合もある。
そこで役立つのがYouTubeだ、今では英語も日本語の字幕が見れるので、何度も両方の言語で字幕を見て理解していけば
、その人の興味がモチベーションとなって、不思議に理解が進むものだ。
メリットとして英語もリスニングできるので耳が鍛えられる。もし聞くのが不慣れであれば、初め速聴をすることでその後標準速度に戻せば、非常にスローに効くことができてしまう。どうやら脳がこうした機能を持っているようだ。
これは、高い音(速聴)が早く喋っているように聞こえ、低音が遅く聞こえる現象からも理解できることだ。
また速読したからといって、内容が理解できないかというと以前にも書いたが、哲学書を速読してみれば速読の効果を体験できる。速聴も速読も脳のインプットの部分では異なるが、最後に理解する場所は多分同じであろうから、人間に備わっている機能を使わないのはもったいない。
これは早い仕事を脳に与えて、活性化させ、標準モードに戻すとハンディが生まれることを利用している。よく耳も筋肉に例えられるように、脳も同じように筋肉効果をもっている。
又、日本人には英語のS音が気なって、より気になってしまい、聞き取れないことがあるが、これも速聴がS音を聞こえないようにしてくるので、子音が聞きやすくなる。

話がそれてしまったが、是非YouTubeを使い一番最適な技術習得をしてみることをお薦めする。
一つマイナスなことがあるので、あまりこれを実行しすぎると、神経症に掛かる恐れもあるので、ヨガや深呼吸方も合わせて行うことも必須条件としておきたい。

2018年4月21日土曜日

DBR(Define by Run)はDSLの進化

ここ数日AIツールについて調査をしてきた。
完全に周回遅れだ、とはいっても旧AIを30年前の雑誌は購入して来て、何時かはAI時代を夢見てIT業界で働いてきた。

今のAIについてここ1年ほど距離を置きながら考えていた。
まずはTensorFlowの書籍を購入し、少し旧いが集合知の書籍も読み直してみた。
技術的には非常に簡単な理論で容易にイメージが湧く説明ばかりで、一体なにがこう騒いでいるのか、又マスコミ先導の流行りごとではないかとも考えていた。

そんな時、PyTorchのNN技術に興味を強く感じ実際に試すことにした。

すると今までと全然違う衝撃の感覚を受けた。
IT業界で今までほとんどどの工程にも現場で経験して来た感覚とは違う感覚に出会ったのだ。
どんなプログラム言語もほとんど理解できるようにしてきた。
なのに全く違う思想でAIツールは作られているではないか。

PyTorchのフレームワークは
「Define by Run」(定義をRunで掛(X)けること)
なのであるが、これは定義するだけで動作してしまうことを指している。それもGPUの上で並列に動作されることを約束してくれる。いまはまだGPUの値段が10万円クラスのコストだが、今後数年でもっと安価な時期も来ると容易に予想される。
そうなると、今よりももっとDBRの思想が進化することになる。

加えてGitHubでこぞってコードがオープン化している、こんな時DBRでは何が重要なのか、書くことから見て考えることにシフトすることが予想される。DBRはDSLのフレームワークの進化版なので、よりITの現場に影響することは大きい。

これが単なるプログラム言語の話しならともかく、ツールで簡単に利便性の高い数式が扱えるのだ、いままでどんな職業が影響するのか巷では騒がれていたが、本当に違いがでてくるのは、そして進歩しなければ行けないのは、IT業界ではないかと、強く思うようになった。

今までは遅かったり、メモリが気になってできなかったことが、理想的な公理的設計さえできれば、後は自動化されることになるし、設計の証明も行えるようになる。
残りはセキュリティの問題だけかもしれない。

今まで、宣言的プログラムを指向してきたが、どうやらDBRが今後は主流になると考える今日このごろです。


2018年4月19日木曜日

イメージ化していく時代

5年前に全てがマトリックス化していると感じた、そしてAIがテンソルでこれを現実化している。

次のフレーズを予想すると、イメージ化が見えてきた。
これは画像のイメージではない、指向のイメージ化を指す。

現在起こっていることは、従来数学や技術論の専門としてきた領域がツールにより、非常に簡単化することにより始まる。まさしくAIを教師として人間が自由にこれを利用できる環境がこれを現実化する。

今までデザインを専門として来た人がAIを利用して非常に高度なことをしてみたり、子供でも発想があれば簡単に実現できる時代が来るようなきがする。
いわゆるIT専門家も、子供も同じレベルに立つ時代が来る。現実にスマフォは子供のの方が利用する上でより上級者だ、どんな未開の地域でも、スマフォさえあれば都会の人とあまりユーザビリティでは差がない時代だ、すでにイメージは共有できている。

それにしても今まで苦労して数式を証明してから使う時代と、パラメータだけを設定するだけで数式を利用できる時代を比較すると、どちらが正しく使いこなせるだろう。

この頃数式もこれを使うイメージや目的が明確になれば、これを使いこなすことができる時代がもう始まっていると感じる。

「数学を学問的か技術的な使い方から、ツールのように扱う時代が来ている。誰でもが平等に扱えるのだ。」

そして、今までできなかったことがAIやロボットにより、魔法のようにできてしまう時代がもう目の前にきている。
世界は広く、ユーチューブで見る限り、発想力はどの国でも平等であり、むしろ今まで注目されてこない国の方が、素敵な動画を作成できる時代になっている。

こんなイメージを感じている人が増えていることは間違いないのではなかろうか。


2018年4月16日月曜日

日本語の歌を異国の人が歌うと

この頃異国の人が日本語で歌うのをテレビで見ると、気がづくことがある。

どうやら日本人より断然音の分解能が良いようだ。それと音の発音の仕方が日本人と異なるため、日本人で作れない音を出していることに気がつく。話す会話と違い歌の場合、音声も大きくより繊細に放送されているため、視聴する側もいつもより詳細に発音を聞くことができる。

「なんという雑味がない歌声なのだろう。異国の人が歌う歌は!!!」
日本語をこんなにきれいな発音ができる人は、今まで聞いたことがない。

母国語が正確に出せないことは少し悲しいが、そもそも日本語には母音しか無いので、普段から当然そんな細かい違いを意識して発音していない。よって発生の範囲が狭くなる。
また、多分音の分解能まで落ちているのかも、もしくは自分の発声した音に対する分解能が良くない可能性がある。
少なくとも以上の理由でどうしても異国の人の歌声にはかなわないようだ。

でも次第にテレビのコマーシャルでも最近ネーティブの英語で流すようになってきた。これにより日本人も段々と高いレベルの若い人達が育つことになるので、将来はもっと歌がうまい日本人も出てくると思う。
また非常に心地よい日本語の発音をするナレータが増えると予想できるので、もう一度きれいな日本語が復活することが期待できる。

それにしてもN**のアナウンサーは本当に綺麗な発音をする人もいるのに、あまり活躍していないことが非常にもったいないと感じているのは、非常に残念と思うのである。


2018年3月26日月曜日

GFについて

今や世界各国の言語が色々なメディアから聞く機会が増えました。
見知らぬ言葉を聞いてこれを調べたい場合には、
一番アクセスで調べたい単語等の場合には、
もちろんグーグルが一番お気軽でしょう。
他にも概念の集合からのアクセス方法として、ワードネットがあります。
ただし、ワードネットはシステム屋さんしか自由にあつかえないツールかもしれません。

ここでもう一つの切口(実用的には使えない)で、今回GFを紹介します。

https://www.grammaticalframework.org/

A programming language for multilingual grammar applications

なにやら、プログラム言語のような感じを受けますが、自然言語を主に扱います。
このツールは自然言語をコントロール言語として扱い、主に文法中心の言語へのアプローチを取っています。
対応言語は広いのが特徴で、世界の主要言語は大体網羅しています。文法に興味がある場合に便利なツールと考えています。
ツールはHaskellで実装されていて、例えばMacにインストールした場合、
gf
コマンドで起動できます。

とにかくアプローチは非常にユニークなので研究するには面白い方法だと思います。ただし、ワードネットよりもよりシステム屋向きのツールと言えます。

これを知ったのは元はプログラム言語の解析でJavaの文法解析で知りました。その頃から更に発展を遂げているようで、再調査が必要なようです。

追伸:
他の件で調査していたら、SyntaxNetがこの道の最新技術らしいです。Googleさんが提供しているオープンソースの技術で、RNN系のNLPで使われている技術です。
大きく異なるのは、GFと違いコントロール自然言語のスコープではなく、本当の自然言語での構文解析で使える技術です。

アラビア語のWordNet

前回はインド語へのアクセス方法を調査してみたが、ついでにアラビア語もワードネットがないか探してみると、やはり存在していた。
こちらはJavaでのアクセスなので、ファイルを直接覗いてみた。

サイトは以下になります。
https://github.com/zouairi/AWN
ファイルを解凍して内容を確認すると、xmlの中が内容のようです。
この他ログにワーニングのようなものが出力されていました。

アラビア語も将来性があるので、情報にアクセスができて勉強になりました。

追記:20180426
もっとまとまったサイトが存在していました。 現在34言語登録されています。

Open Multilingual Wordnet

2018年3月25日日曜日

インド語へのPyiwn

インド語についてYouTubeで文字について興味があったので見てから、今度はWordNetが利用できないか調べてみたら、IndoWordNetの存在を知りましたが、アクセスするとゲートウェイエラーが発生してしまいます。

そこで役立つのがPyiwnです。

これでアクセスすれば、インド語ワードネットへアクセスできます。
そこで早速試してみましたが、ちゃんとアクセスできるようになりました。
インストールも簡単で、

pip install pyiwn

これだけです。ヒンディ語を試すとアクセスできます。
from pyiwn import pyiwn
pyiwn.download()
iwn = pyiwn.IndoWordNet('hindi')

これからインド語への調査で役立つツールになります。
Synset:531
Word:11万
と単語数も十分な数があります。これでヒンディ語の解析も可能な時代になりました。

この他試した言語はいかのようでした。
lng=['assamese',
# 'bangla',
'bodo',
'gujarati',
'hindi',
'kannada',
'kashmiri',
'konkani',
'malayalam',
'meitei',
# 'mrathi',
'nepali',
# 'odia',
'punjabi',
'sanskrit',
'tamil',
'telugu',
'urdu']
for l in lng:
  print(l)
  iwn = pyiwn.IndoWordNet(l)
それにしても1国でこれだけ言語があるので、インドの人が数学でも言語の分野でも苦労が多いことでしょう。

苦労することは知識や知能が発達する可能性が高いと考えられます。

2018年3月8日木曜日

GSSとはCSSの何?

GSSとはGrid Style Sheetをさしているらしい。ググってもほとんど日本のサイトではヒットしない。
なにやら技術的には非常に革新的なものであるが、2014年のYouTubeのデモからもう5年になろうとしているので、これからの技術かもしれない。

特徴を上げると
1.プリプロセッサで利用、CSSを変換
2.グリッドシステム
3.広い範囲で利用できる
4.制約論理をインテリジェントに適用、CCSS
こんな感じです。

感想としては、「CSSが未熟な技術なので、制約表現で記述してくれれば、エンジンを使いクールに表現できます。」という感じでしょうか。

VFLという制約言語でコードを記述するようですが、制約を宣言的に記述すると、自動で動的CSSのコードに変換してくれる仕組みのようです。(VFLはアップル社の技術)

制約論理ではSATやMax-SATだの用語が並んでいるので、かなりインテリジェントなものだと考えられる。CSS polyfillsからの技術ということで先進的なのですが、何故か現在はほとんど議論されていないようなので引き続き調査が必要なようです。
現在はサイトで公開しているようですが、なぜかGitHubの更新が3年前から更新されていないようで不思議な感じがします。

なにやら不思議な感じなまま書いてしまいましたが、オライリーでも取り上げられた内容で、且つ制約論理を使うまれなケースなので、とにかくこんなところまでSATが進出していたとは、この発想にはつくづく感心致します。


2018年3月7日水曜日

マイクロサービスのメモ

ある仕事を終えてから、せっかくScala言語が理解できる状況になったので、ScalaによるWEBについての調査を手前味噌で行った時のメモです。
マイクロサービスとは、かのマーチン・フラウワーさんが提唱したアーキテクチャーです。

結局、Scala言語はJavaなんかよりも開発効率があがるが、あまりコードを開発する技術者も増加しないし、一部複雑な概念(黒魔術ともいうらしい)があり、将来性は今一解らない状況と理解しています。相変わらずJavaのミッションクリティカル系でのレガシーなコードの蓄積の影響力が強い傾向と考えています。ただ次第にPython系の仕事も増加しているようです。

「Lagomでマイクロサービス」

前置きが長くなりましたが、結局マイクロサービスがDOS攻撃にも対応可能であると考え、Scalaでのマイクロサービスの一つである、Lagomのことを書きたかったのです。
Lagomの特徴は、JavaもしくはScalaでのAPIを使うことができるバックエンドで、非同期でリクエスト処理ができる、クラウド向きなマイクロサービスのシステム構築が実現できるものです。
深くは勉強していませんが、工夫しだいではフロントエンドに
DOS攻撃を受けたときにリクエストを判断し破棄する仕組みを作れば、かなり理想的なシステム構築が可能になると考えています。
今は、安定性や将来性を見極める段階ですが、期待したいプロダクトと思い今後も注目していきます。

せっかくScalaのことを書いたので、一つ追加でScalaで実装された、ScarabというSATソルバーがあり、コードもシンプルで且つ高速であるようです。何かSATで実用的なシステムを組みたい時に使える技術だと思います。

2018年2月24日土曜日

確率論的プログラム

近頃AIツールから流行りだしてきた新しい考え方として、確率論的プログラムがある。
以前からNLPの分野では絶対的に必要になる確率論の登場だ、そもそも自然言語は確率論で解析されるべき現象かもしれない。相手は自然言語なので、発生した表現はどれも正しいえる、例え文法的にも間違いがあっても、その場で言語の役目をになえば、正しいといえる。時代時代の言葉、若者があるコミュニティで発した言葉、どれも正しいのだ。
これを時と場合の状況に合わせ、主体者が主体的に選択したものを、NLPで解析しているのが事実で、実際に対訳データを解析してみると確率を使った分析で単語とかはかなり高い確率で解析できる。
確率論的プログラムは今後飛躍的に発展してくる技術であることが予想される。
でも確率論と統計解析とどのように区別するべきなのであろうかという疑問が残る。少なくとも確率論は統計解析を参照するが、総体的統計ではなく局所的統計を意味を論理的に判断してアルゴリズムを組むことで異なる判断がなされると考える。(自己流の解釈です。)
現在、Pytorch+Pyro、WebPPL等が注目されているが、この考え方は、これ以前からある、B-Prolog+PrismやASPと共通している考え方であると思う。それにしてもまたもやPrologの先進的な手法がレガシーなものになってしまうのか、今後の流れに注目していきたい。