数値解析系

2019年8月17日 (土)

スパコンの「京」が運用終了

8月16日をもって、停止しました。

「2位はダメ」とトップ争い、「京」運用終了へ : テクノロジー : 読売新聞オンライン

こういっては何ですが、ちょっと悪意を感じますね、このタイトル。

ちゃんと実績は残してます。せめて「科学・工学の発展に貢献した「京」運用終了へ」と書くべきでは!?

【追記】

リンク先、タイトルが「スパコン「京」さらば…跡地には性能100倍「富岳」設置」に変更されてました。

ちなみに、こういう事例があります。

 「京」を中核とするHPCI利用研究課題成果事例集|HPCI

公開されているのは氷山の一角で、実際にはいろいろな実績を残してます。私も、あまり公開されていないネタの実績を一つ知っています。

以前にも書いたことがありますが、TOP500の上位にいるスパコンは、ほぼ9割以上はGPUなどの支援プロセッサを使って増速したものばかり。

ですが、そういうハードでは動かない解析ソフトというのはたくさんあるんですよね。私が最近まで使っていた「LS-DYNA」という衝撃解析用ソフトは、まさにこれ。陽解法コードは、支援プロセッサではまだ動きません。構造解析系のソフトの多くは、TOP500の上位スパコンでは性能を発揮できないことが多いのが実態です。

ところがこの「京」は、そんなソフトが動かせる唯一の上位スパコンだったわけです。

TOP500というのは、それ自身が何か実績を生み出す指標ではなく、単なる物差しに過ぎないんですよね。いや、最近は物差しですらないといわれてますね。

TOP500で使われているLinpackというベンチマークソフトが単なる演算速度を測るアルゴリズムであるため、メモリやストレージ、ネットワークなどを酷使する実際の数値計算条件での性能を示すものではないんです。TOP500で1位 = すごいスパコン とは言えなくなってきました。

くわしい人は知っている.「Top500, Green500 の順位はもうスパコン性能の参考にならない」と順位リスト作成者が言い続けている|rings|note

だから、意外にいろいろと実績を残せているわけなんですが・・・民主党政権時代の事業仕分けのあの一言のおかげで、この元記事のタイトルのような変な印象が植え付けられてしまいましたね・・・

ところで、リンク先にも書かれている通り、「京」の跡地には約100倍の性能を持つ「富岳」が作られることになっているそうです。

この計算機も、新たな功績を挙げてくれるんでしょうか?なにせ、科学技術にケチな日本と言われてますからね。計算機技術では、何とか質を維持していただきたいものです。

以下余談ですが、ところで、事業仕分けの時に話題になったこの「京」の建造費用は、1100億円だったそうです。

で、何某N国党を躍進させるきっかけになった、あの何某放送局の新社屋が、なんと3400億円だそうです。

つまり「京」の3倍。目的が違えど、とても「京」の3倍の働きをしてくれるとは思えないなぁ・・・

こういうやつこそ、事業仕分けするべきじゃないんでしょうかね?しかも、我々の受信料ですよ!?同額でももったいないと思いますよね。どうなってるんでしょう!?

次世代スパコン「エクサ」が日本を変える! 「京」は凄い、“その次”は100倍凄い(小学館新書)

2019年8月11日 (日)

「砲撃手の妻は呪術師(シャーマン)」を使ってRNNによる文章自動作成してみた

毎年夏は、チャレンジの夏として何か仕掛けるのが通例です。というわけで、ずっと以前からやってみたいテーマに取り組んでみます。

ずばり文章自動作成です。

と言っても、ネット上にあるコードを流用しただけですけど。チャレンジと呼べるものにするには、これを今後、発展させられるかどうかが次第です。

参考サイトはこちら。

Keras LSTMでサクッと文章生成をしてみる | cedro-blog

こちらにあるコード(少し下の方にあるプログラム全体)を、ほぼそのまま使ってます。

が、こちらの事情に合わせ、ちょっと変えております。

まず教師データですが、「砲撃手の妻は呪術師(シャーマン)」をKH Coderの「共起ネットワーク」で分析してみた: EeePCの軌跡で用いたデータをそのまま使いました。

なにせ自分で作ったオリジナル文章、文章生成がうまくいけば、PCによるゴーストライターも夢ではありません(大げさ)。

リンク元にあるプログラムの15行目「path = ~」のところに、上の文章データのファイル名を指定します。

それ以外にも、71行目「start_index = 0 」の0を5にしたり(”#1 ”という不要な文字を取り除くため)、100行目「batch_size=128, 」の128を64に変えたりしてます(うちのGTX1050Tiのメモリ不足のため)。

と、これだけやったところで、レッツ機械学習!

Lstmbun01

1エポック目の文章です。「ああ、そんなことはない。」を連発。うるさいですね。

Lstmbun02

初期のころはこんな文章ばかり・・・「あの……僕は、~~」って、何なのですか!?

不安は募るばかりですが、学習を続行します。

Lstmbun03

よく見ると支離滅裂ですが、10エポック目くらいから、なんとなく文章っぽいものが出始めます。

Lstmbun04

にしても、砲撃長が多いですね。3話しか出ていない人物なのに・・・

学習は、続きます。

Lstmbun05

60エポック目は、こんな文章です。

ところでこの文書生成コードは、いわゆる形態素分析後の単語ごとのつながりを学習しているわけではなく、文字単位のつながりを学習しているようです。このため、JanomeやMeCabなどを使ってません。

にしては、意外に体裁を整えてきてますね。よく見ると支離滅裂ですが、なかなかです。

しかし、ゴーストライターとするにはいささか頼りなさすぎですね。

もう少し意味の通る文章を作れるコードを手に入れたいものです。

ゼロから作るDeep Learning ? ―自然言語処理編

2019年7月31日 (水)

AIベンチャーのリアルが語られた記事

元記事のタイトルはアレですが、どちらかというと内容はちょっと違いますね。

「PoC、ぶっちゃけいくら?」製造業とAIの“リアル”をベンダー3社が語る | Ledge.ai

AI系ベンチャーが語る、今のAI事業の現状が載せられています。

タイトルにある通り、PoC(Proof of Consept、つまりコンセプト実証)にかかる費用の話も出てました。同じようなことを会社でやってますけど、外に頼むとこんなにかかるのか・・・なんだか私、安く使われて・・・

という話はともかく、どちらかというとそれ以外の話の方が参考になりました。

その中で特に気になった部分は、以前は「異常検知」が多かったのが、今は「匠の技術を継承する」ことに主軸を置く会社が増えてきた、という話です。

ユーザーからの要望が変化したということは、いわゆるAIの技術を理解できるユーザーが増えたということのようです。

私の周辺では、どちらかというと異常検知の話が多いですね。これはこれで大事な話なんですが、世の中は一段先に進んでいるのがここから読み取れます。

ほかにも、リードタイムや失敗事例の話など、読むべきものは多いです。実際に取り組んでいる人だと、納得する部分は多いと思いますね。

ROI(費用対効果)の分からない問題へのアプローチというのも課題ですね。これが分からないという理由で、AI技術に否定的な人が多いのは事実。

なにせ、責任が負えないですからね、こういうものって。日本人って、責任の所在を求める人がものすごく多いです。なぜでしょうね?

私も、今取り組んでいるテーマで、どれくらい効果があげられるか分からないものは多いです。

でも、何もしなければ改善が進まないテーマもあって、そういうのはダメで元々、その時は現状維持をするというものが多いです。逆に言えば、もし少しでも改善に結びつけられたなら儲けものというものです。

未だ手つかずの現場があれば、そういうテーマはごろごろしています。

さらに言うと、ビッグデータ分析技術というのには2種類あって、「意思決定支援」と「自動化」があります。

いわゆるAIというのは、後者の「自動化」、つまり機械に判断まで任せて、機械で完結させるものを指すことが多いですが、私は最近、どちらかというと前者の「意思決定支援」をさせてます。

例えば、異常検知で異常が出た場合、それを見える化するところでとどめる。その異常の有無は人間が判断する。そんな感じのことを「意思決定支援」と呼んでます。

これを繰り返していると、なんとなく異常と正常の境目が見えてきて、最終的には「自動化」につながります。仮に意思決定支援にとどめたところで、異常にすぐに気付けるというメリットがあります。

そういう小さなところから始めるというのが、この技術の基本ですね。ここ最近、それを実感します。

こういう実感ができる人材が増えることが、いわゆるAIというものの活用の、第一歩でしょうか。

この記事を読みながら、そんなことを考えてました。

エンジニアなら知っておきたいAIのキホン 機械学習・統計学・アルゴリズムをやさしく解説

2019年6月27日 (木)

フォトショで加工した顔写真を見抜いて修正するAIツールをAdobeが開発

Photoshopといえば、まさに修正ツールのごとく言われております。

特に、顔写真の修整ツールとして使われることが多いですよね。わりといかがわしい業界では、店頭で指名用の写真に使っていて、本物を見たら愕然としたという話を聞きます。写真集や芸○人の写真でも、加工疑惑が出ることがしばしば。

そんな顔写真がPhotoshopで修正済みか否かを見分け、元に戻してくれるというAIツールが登場です。

 Photoshopで加工した顔写真を見分けるAIツール、Adobeが開発 - ねとらぼ

皮肉なことに、Photoshopを作ったAdobeがつくってます。このツール。

なんだか自身の製品の活用手段を一つ消してしまうような気もしますけど、メーカーとしてもあまり乱用されるのも困りもの。むしろ製品の信頼性を勝ち得るために作ったツールなんでしょうかね?

詳しいことはリンク先にお任せしますが、このツールにより99%の加工を見分けたらしいです。ちなみに、人間は53%だったとか。

確かにすごいツールですが、こんなツールが登場せざるを得ない世の中というのも、困りものですよね。

Adobe Photoshop Elements 2019 Windows版 オンラインコード版

2019年6月26日 (水)

「砲撃手の妻は呪術師(シャーマン)」をKH Coderの「共起ネットワーク」で分析してみた

せっかくデータがあるし、ちょっと自然言語処理っぽいことをしてみました。

最近会社では、「KH Coder」というツールを使って「共起ネットワーク」というテキストマイニング手法を使ってます。

KH Coder: 計量テキスト分析・テキストマイニングのためのフリーソフトウェア

このツール、簡単にインストールできて、例えばアンケートの自由筆記欄のようなものを簡単に分析できます。

大量の文書データを分析しなきゃいけないことが増えたため、よく使います、このKH Coder。

で、これを自宅でも使ってみようと思い立った次第。

そういえば元々私は、こういうことをするために小説を書いていたんでしたよね。

砲撃手の妻は呪術師(シャーマン) - 小説家になろう

てことで、今執筆中のこの作品データを使います。

「砲撃手の妻は呪術師(シャーマン)」という作品。

宇宙艦隊の駆逐艦乗りで砲撃手のランドルフ中尉が、ひょんなことから出会ったイーリスという呪術師(シャーマン)を妻にし、とてつもない力を身につけて活躍(?)するというこの作品。

自身の文書癖や、作品のおおよその関係が見えるかもしれないということで、早速このKH Coderを使って分析してみました。

さて、この作品のテキストファイルはPC内に入っているので、それを使いました。

が、以下の3つの事前処理が必要です。

(1) テキストファイルを1つに結合する

(2) 句読点(。)を句読点+改行コードにして、1文=1行にする

(3) テキストファイルの拡張子をcsvに変えて、Excel上で空白行を削除

もしかしたら(2)は不要かもしれませんが、一応実施しておきます。

(1)は、テキストファイルをフォルダに集め、そこでコマンドプロンプトから

> copy /b *.txt all.txt

と実行すればOKです。

(2)については、以下のサイトを

 楽ちん機能で効率UP!句点(。)後に、改行を自動で挿入する方法

(3)については、以下のサイトを参考にして対応。

 【Excel(エクセル)術】空白行をまとめて削除する方法 | リクナビNEXTジャーナル

Excelのフィルタを使ってもいいんですが、こっちのやり方の方が簡単ですね。

Khcoder000

こうして、分析用のデータが準備できました。

さて、いよいよKH Coderにかけてみます。

先ほどのKH Coderのサイトから最新版をダウンロードし、exeファイルをダブルクリックして自己解凍すると、デスクトップに「KH Coder 3 Folder」というのができているはずです。

それをダブルクリックしてフォルダを開き、「kh_coder.exe」をダブルクリックしてKH Coderを起動します。

Khcoder00

ここで、先ほど作ったデータ「all.csv」を開きます。

メニューの「プロジェクト」-「新規」を開き、「参照」で上のデータを選択します。

Khcoder01

OKを押すと、こんな画面に。

Khcoder15

結構な語数ですね。36話までのデータですが、約7200文、10万語以上。

さて、とりあえずそのまま使ってみます。

メニューで「前処理」-「前処理の実行」をクリック。

しばらく待たされます。

終わったら、「ツール」-「抽出語」-「共起ネットワーク」を選択。

Khcoder04

こんなメニューが開きます。

Khcoder05

デフォルトのままでもいいですが、とりあえず「最小出現数」を「10」にしておきました。50ではちょっと絞られ過ぎるかなぁと。

Khcoder02

で、OKを押すと、結構待たされます。

しばらくすると、こんな画面が。

Khcoder03

単語と、それを結ぶ線がいくつも出てきました。

この線が関連の強い単語同士の結びつきを表し、丸の大きさが出現頻度を表しています。

Khcoder06

例えば、こんなのがあります。

「最良」の単語の周りに「結果」「選択」が出てますね。

言われてみれば、こういう表現をよく使ってます、この作品。

その「最良」をクリックすると、こんなものが登場。

Khcoder12

その単語を含む文章を表示してくれます。どういう文脈で使われているのか、わりと簡単に生のデータで確認することが可能。

ですが、この共起ネットワーク、デフォルトではやや問題あり。

例えば、「カーリン」という登場人物がいるんですが、形態素解析で「カー」と「リン」に分けられちゃってます。

わりとうるさ型の、ちょっと嫌なキャラですが、いくら何でもかわいそ過ぎます。

これ以外にもいくつか、小分けにされ過ぎている表現が見受けられます。「ショッピングモール」→「ショッピング」「モール」など。

これじゃあちょっとあれなんで、少しいじってみます。

メニューの「前処理」-「語の取捨選択」を選びます。

Khcoder09

出てくるフォームの中の「force pick up」の中に、分断されたくない単語を入れます。

なお、その隣の「force ignore」には、無視したい単語を入れます。

アンケートの自由筆記欄に「特になし」と書かれる場合がありますが、ああいうのを排除するために使います。

今回は特に、排除するべき単語はないので、このまま「OK」。

ここでもう一度「前処理」-「前処理の実行」をクリック。

終わったら再び「ツール」-「抽出語」-「共起ネットワーク」を選択して実行しますが、表示を増やすために「描画する共起関係」の「上位」の項目を「120」にしてみました。

で、OKをクリックします。

またしばらく、待たされます。

Khcoder11

今度は、結構派手な共起ネットワーク図が出てきました。

人物の関係やよく使われる単語と結びつく表現がよく見える化されています。

Khcoder14

他にも、使用単語頻度の分析や、

Khcoder13

階層型クラスタ分析もできます。

こんな感じに、膨大なアンケートや文書のチェック・分析をしなきゃいけない場合に、これは使えますね。

ちなみに「自己組織化マップ」という項目がありますが、あれは結構時間かかります。数時間かかる覚悟が必要。要注意ですね。

他にも便利な機能があるようです。深堀りすると、なかなか面白いツールです。

長い文書をまとめろ、などと言われたときには、ぜひご活用を。

この調子で、できれば次は「要約」を、そして次には「文書作成」までさせてみたいところですね。

テキストマイニング入門: ExcelとKH Coderでわかるデータ分析

2019年6月16日 (日)

赤ちゃんの泣き声から正常・異常を聞き分けるAI

そんなものが開発されているそうです。

赤ちゃんの泣き声の意味をAIで聞き分けることが可能に - GIGAZINE

ノーザン イリノイ大学の研究チームが勧めているのが、赤ちゃんの泣き声の特徴から「正常」、「異常」を識別しようという試み。

実際、ある程度の熟練があれば、赤ん坊の泣き声からメッセージを聞き取れるようになるので、それを機械的に再現できないかというのがこの試みです。

そのために、線形予測ケプストラム係数(LPCC)、バーク周波数ケプストラム係数(BFCC)、メル周波数ケプストラム係数(MFCC)から特徴を取り出して・・・詳しくは、リンク先をたどってください(よくわかってない)。

私は今のところ、音声認識を使おうというところまでは考えてません(すでにOK Google、Siri等がありますからね)が、こういうアイデアを聞くと、何かありそうな気がしてきますね。少し勉強してみようかなぁ。

フリーソフトでつくる音声認識システム パターン認識・機械学習の初歩から対話システムまで

2019年6月 2日 (日)

Googleがリアルタイムに映像から人物を消し去る技術を開発

そういうアプリはすでにありますからね、あれの動画版といったところのようです。

Googleが映像からリアルタイムで動く人物を消し去る技術を開発、ムービーが公開中 - GIGAZINE 

ディープラーニングを用いて、人を消したり、あるいは別のオブジェクトに置き換えたりピントを変えたりできる技術のようですね。

ただ人物を認識し消すだけではなく、ちゃんと深度推定をして、その物体までの距離を把握したうえでの処理のようです。だから、オブジェクトの置き換えなどができるようですね。

そういえば、位置推定、深度推定というのも需要が上がりつつありますね。私の職場でもそういう需要があるので、ぜひトライしてみたいとは思っています。

Intel RealSense Tracking Camera T265

2019年5月29日 (水)

サイゼリアで1000円で最大何kcal取れるか?を計算する

いわゆる「最適化問題」ですが、それをSMTソルバーというものを用いて解くという試みをやっている記事があります。

 「サイゼリヤで1000円あれば最大何kcal摂れるのか」をSMTソルバー(Z3)で解いてみた。 - Qiita

事前にメニュー情報(価格とカロリー)を入れないといけないようですが、無数の組み合わせから、カロリーが最大となる組み合わせを選び出すようです。

Satisfiability modulo theories (SMT) ソルバーというのは・・・うーん、読んでもよくわかりませんでした。要するに、100個程度の変数に対して最適解を得るにはかなり速く解が得られる手法のようです。

で、結論は、992円で1940kcal、だそうです。

ちなみに、ペヤングの超超超大盛GIGAMAXは、一つ400円ほどで2142kcal。ですが、入手困難なためか通販で買うと1000円ほどするので、これといい勝負なカロリー摂取量なようです。まあ、ペヤングと比べるのはいささか酷ではありますが・・・

にしても、こういう最適化手法は覚えておくと便利なことが多いと思われます。どういう順番で周ったら早く回れるか、とか、どういう組み合わせが一番安いか・・・なんて命題は、どこでもあるものと思われます。

ただし、いわゆる「巡回セールスマン問題」(47都道府県の市町村をどういう順番で周ると一番早く回れるか?)を求めるのは、やはり不可能と思われます。この辺は、量子コンピューターの実用化を待つしかなさそうですね。

サイゼリヤ おいしいから売れるのではない 売れているのがおいしい料理だ (日経ビジネス人文庫)

2019年5月27日 (月)

機械学習結果のグラフ化が捗るライブラリ「Yellowbrick」

今まで、MatplotlibやExcelでやってました。

が、この記事を読むと、楽にグラフ化できそうです。

 【Python】 機械学習の可視化が捗るライブラリ「Yellowbrick」 - フリーランチ食べたい

どうやら、グラフ化に必要な設定のかなりの部分を自動で解釈してやってくれるっぽいですね。

リンク先で書かれているコードでは、ヒートマップをたったの3行で書いてました。

書式が、ちょうどscikit-learnのような感じ。X,Y軸データを入れて”Fit”させているだけのようです。それでグラフが作れちゃうとか、ちょっと気になるツールですね。

今、独学でまさに時系列データから「異常検知」できないかとごちゃごちゃとトライしているんですけど、次元圧縮して2次元化したデータをk-meansでクラスタリングさせて分類した数値で色を変えたいというときに、Matplotlibで書かせようとするとうまくいかず、Excelではやりづらくて困っていました。

可視化って大事。最近そう思います。

会社で早速、導入してみようかと思ってます。一応、備忘録がわりにここに載せておきます。

機械学習エンジニアになりたい人のための本 AIを天職にする

2019年5月26日 (日)

東大松尾研の無償公開された機械学習用演習コンテンツ「DL4US」

まだ見てませんけど、この記事を読む限り、なかなか演習用としてはよさそうです。

 東大松尾研から新たに無償公開されたDeep Learning講座「DL4US」が良い、という話 - Qiita

公開元:DL4US コンテンツ公開ページ | 東京大学松尾研究室 - Matsuo Lab

keras+TensorFlowとscikit-learnなどの基本ライブラリで構成されたコードを使い、MNISTから画像認識、時系列データ、GAN(画像生成)、そして強化学習の基礎まで学べるというコンテンツのようです。

前半部分だけでも、十分すぎですね。ただし、講義内容は公開されていないようです。あくまでも、演習のみということのようで。

うちでもいよいよ機械学習講座っぽいものを始めようと考えているところなのですが、教材が手作りなものしかないんですよね・・・

こいつを応用すれば、捗りそうです。

見て試してわかる機械学習アルゴリズムの仕組み 機械学習図鑑

より以前の記事一覧

当ブログ内検索

  • カスタム検索

スポンサード リンク

ブログ村

無料ブログはココログ