Ruby 初心者スレッド Part 60 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/04/29(土) 02:01:58.34ID:urVXnFrH
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
Ruby on RailsについてはWEBプログラミング板で

前スレ
Ruby 初心者スレッド Part 59
http://echo.2ch.net/test/read.cgi/tech/1475394638/

るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/

Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/

逆引きRuby
http://www.namaraii.com/rubytips/
2017/07/03(月) 03:30:38.10ID:6nx2OSAK
>>494
たしかに記述が冗長か構成が冗長かだけど別に良くね
イテレータがインデックス持っててもおかしくない

配列はデフォで配列の長さ分かるじゃん
そんなようなもん
2017/07/03(月) 03:42:56.46ID:2SpTAV0H
構成が冗長ってどういうことだろう?
普通、冗長ってそういう意味に使わないよね?
2017/07/03(月) 10:06:01.55ID:looyCaxt
>>493
each_with_index は素の each に比べて 3~4 割遅い。
each のデフォルトで index を持つよりは、遅くても index が使いたいときに明示するという使い方の方がリーズナブルだと思うけど。
2017/07/03(月) 10:29:47.39ID:edaN+zHQ
でもそういう使い分けこそ、まつもとさんに言わせればムダなわけだし
あのひとは機械にできることはすべて機械にやらせるべし、って言ってるからね
コンパイラはインデックスを必要としているかどうか、判断できるわけだから
勝手に使い分けてくれればよいんじゃね?
てことでRubyを静的型にしてオーバーロードで解決すればよいだろう
静的型にするとコンパイル時に型チェックをさせることができるし
最適化もかけやすくなるし、入力補完との相性もよい
機械で出来ることがどんどん増えるから
まつもとさんの機械にできることは〜の考えによく合ってるね
2017/07/03(月) 11:00:51.38ID:looyCaxt
>>499

> あのひとは機械にできることはすべて機械にやらせるべし、って言ってるからね
発言を自分に都合よく拡大解釈してない?

> コンパイラはインデックスを必要としているかどうか、判断できるわけだから
あなたの脳内のコンパイラはそれができるみたいだけど、
現状のMRIにその機能は無いよ。

> てことでRubyを静的型にしてオーバーロードで解決すればよいだろう
> 静的型にするとコンパイル時に型チェックをさせることができるし
> 最適化もかけやすくなるし、入力補完との相性もよい
機械で出来ることがどんどん増えるから

現時点で解決したいならCrystal使ったほうがいいよ。
変数の型を変えると言う言語の根幹に影響する変更が受け入れられるとは思わないけど、あなたがそんなに強く望むのならコミュニティに参加して意見が通るほどの功績を積むのが最短の道。
501デフォルトの名無しさん
垢版 |
2017/07/03(月) 20:57:22.46ID:91Pqu4Id
>>500
久々に普通な常識を元にしたレスを見た
2017/07/03(月) 23:47:51.07ID:7Hia1uWl
まあ別にeachにインデックスを渡してても良かったと思うけどね
(3..9).each_with_index {|e| p e }
2017/07/04(火) 04:47:02.02ID:nYPV9UDZ
つーかeach_with_indexが長いから
each_iとかで良かったんじゃね?
極端な省略だけどto_iとかもあるから
2017/07/04(火) 10:42:41.42ID:olJiM2Cb
オブジェクト指向なんだからオブジェクトによって振る舞いが変わればよくね?
なんでこっちで使い分けなきゃならんの?
2017/07/04(火) 11:11:52.06ID:XKRg/8mz
最初に each_with_index つくったのがいまとなっては浅はか
もしかしたら当時 Enumerator がなかったんかもしれんけど
506デフォルトの名無しさん
垢版 |
2017/07/04(火) 12:27:20.90ID:FYa81knm
それとは別でeach.with_indexもあるって言うね。。。
2017/07/04(火) 12:29:22.36ID:jC9x4mB4
JavaScriptみたいにcallback関数(ブロック)の引数の数で
挙動を変えられるようにできたら良いんじゃね?

つまり

[1,2,3].map(v => v) だったらインデックスなしのコードが実行されて
[1,2,3].map((v,i) => i + ':' + v) だったらwith_index相当
2017/07/04(火) 12:36:39.44ID:Qa2xT13J
話をぶった切るけど

Rubyで人工知能、それもワトソンのクローンを作りたいんだけど
Ruby界隈ではどうやって人を集めたら良い?
成果としてRubyの人工研究関連の書籍がだせるし、出来上がったソフトかそのサポートでビジネス出来る可能性あるし、何かの縁で研究関連の所と一緒に仕事できるかもしれないし、政経的な所に話を持っていける実績つくしで、
良いことばかりだからやってみたいんだけど

基本、金は出したくないけど、Rubyで大きな事がやりたい
2017/07/04(火) 12:37:00.52ID:XKRg/8mz
>>506
流れに逆らうけど勝手にindex乗るのはきもい
Enumerator#with_index
のみならよかったとおもってる
510507
垢版 |
2017/07/04(火) 12:40:29.48ID:jC9x4mB4
補足しておくとJavaScriptは

function foo() {}
function bar(i) {}
function baz(i,j) {}

foo.length => 0
bar.length => 1
baz.length => 2
のように関数定義の引数の数が取得できる

const hoge = (i) => i+1
hoge.length => 1
アロー関数でも使える

function map(callback) { console.log(callback.length + ' arguments') } みたいにしておくと

map(i => i+1) => 1 arguments
map((i, j) => i+1) => 2 arguments
map((i, j, k) => i+1) => 3 arguments
みたいに関数の中で、コールバック関数の引数の数で処理を変更することができる
511デフォルトの名無しさん
垢版 |
2017/07/04(火) 12:40:38.40ID:Fv1Dj8Gj
>>508
人は金に群がるから、その性質を利用して人を集めるが良し。

ただし、若い人は、やり甲斐とか求める人も居るから、うまく説得
するのも良し。
512デフォルトの名無しさん
垢版 |
2017/07/04(火) 12:42:55.91ID:Qa2xT13J
ワトソンの解説みたいなのをRubyでコード実装して試す本、
ってのなら割と興味もたれて売れると思うんだよ
どうかな?
513デフォルトの名無しさん
垢版 |
2017/07/04(火) 12:43:23.19ID:Fv1Dj8Gj
>>508
ワトソンは厳密にはAIでは無い。
人口無能ってやつだ。基本、失敗した技術。
マーケティング的に成功している。
クイズの回答をさせるのとか、いかにも考えて居る風に装って、
実は探索を行うのだ。
514デフォルトの名無しさん
垢版 |
2017/07/04(火) 12:44:13.45ID:Fv1Dj8Gj
>>512
Rubyで作る人工無脳、って本があったはず。
515デフォルトの名無しさん
垢版 |
2017/07/04(火) 12:45:12.42ID:Fv1Dj8Gj
>>514
>Rubyで作る人工無脳
はじめてのAIプログラミング―C言語で作る人工知能と人工無能

こんなのもある。
516デフォルトの名無しさん
垢版 |
2017/07/04(火) 12:47:14.56ID:Qa2xT13J
しってるしってる
だからワトソンのクローンをRubyでつくるんだよ

で、あの人工無能のどこに深層学習やら何やらの技術が使われてるかRuby使って解説する本を出すんだよ
2017/07/04(火) 12:47:34.81ID:jC9x4mB4
>>508
ワトソンよく知らないけど、これが本当なら泥臭いソフトだと思うわ
https://wirelesswire.jp/2016/11/57683/

> しかし、それは失望と呼ぶしかないものでした。
>  WatsonのAPIとして提供されているものは、「自然言語分類」
> 「検索およびランク付け」「文書変換」「会話」「音声認識」
> 「音声合成」といったもので、これは基本的にはディープラーニングとは
> 無関係な、既存技術の寄せ集めに過ぎません。もっというと、
> Watsonを有名にしたはずの、クイズに正解する機能すらありません。
> 少なくとも汎用的は皆無です。

人工無能でも膨大なデータを投入して、ちゃんとした
検索エンジンを使えば、それなりに使えるものができる。
みたいな認識。
518デフォルトの名無しさん
垢版 |
2017/07/04(火) 12:47:46.71ID:Fv1Dj8Gj
>>512
ontrogy、オントロジーってのを学ぶのがよろしい。
AI冬の時代ってのがあって、ontrogyを追求した結果、だめだぁー、となって冬の時代に突入した。
2017/07/04(火) 12:51:53.36ID:jC9x4mB4
ワトソンは人工知能ではない
だが商業的には成功している
人工知能ではないが使える技術はある
使える技術=検索エンジン

↓ってことでこれなw

本当に必要ものは人工知能ではなくて検索エンジン [無断転載禁止]©2ch.net
http://mevius.2ch.net/test/read.cgi/tech/1498937148/

検索エンジンを求めている客に
人工知能ですよという言葉で近づいて
検索エンジンを売る商売w
2017/07/04(火) 12:54:36.48ID:2/r2iAfu
>>510
引数の数は取得できるし、この話はそういうことじゃなくて、引数の渡し方の問題
521デフォルトの名無しさん
垢版 |
2017/07/04(火) 12:55:29.02ID:Qa2xT13J
先ずはワトソンを、組織的かつ学術的に解析するために、
資料集めたり研究者に聞きにいったりする必要があるんだけど、
一人でやるのとは違うから会社みたいに事務というか書類や議事といった形式をまとめないといけない

で、Rubyでやるわけだから誰かruby界隈での人の集め方知っているかな?って思いでレスしたんだ
出版社さんあたりが絡んでくれると、バックボーンができるから(確実に出版にまで漕ぎ着けられるから)うれしいんだけど
522デフォルトの名無しさん
垢版 |
2017/07/04(火) 12:57:14.60ID:Fv1Dj8Gj
人工知能とは、Neural Net、しかも学習済みのNeural Net(スペル自信なし)なのだ。

NNの構造に、自己学習、つまり入力から入力を出力するNNを取り入れて居るところに、昨今のNNのbreak throughがある。

この認識でOK?エロい人?
523デフォルトの名無しさん
垢版 |
2017/07/04(火) 12:59:01.56ID:Fv1Dj8Gj
>>521
大学の図書室へ行ってまずは、文献調査するのが良いでしょう。
会社も交通費出してくれるでしょう。

少なくとも、二百人位の俺の会社は、文献調査に金出してくれるよ。
2017/07/04(火) 13:01:25.57ID:jC9x4mB4
>>520
mapはデフォルトでインデックスあり(with_index相当)であればいいのにって話じゃないの?

そしたらwith_indexは遅いって話が出たから、
ブロックの引数を見て、indexを参照しているときだけ
with_index相当にすれば、速度は遅くならないって話をしてるんだけど
525デフォルトの名無しさん
垢版 |
2017/07/04(火) 13:02:50.26ID:Fv1Dj8Gj
>>521
あんたが、どういう組織に属し、これまでどの様な実績を積んできたか、知らんが、出版社に飛び込みで、話しをしに行ってみれば!

多分、鼻で笑われる。けど、それも良い経験だよ。
526デフォルトの名無しさん
垢版 |
2017/07/04(火) 13:03:01.58ID:Qa2xT13J
そもそも人工知能研究ってその当代の計算機性能で出来る、自動で組み合わせて問題を解く研究なんだよ
でも計算機性能で無限じゃないからできることには制限がある
だから人の手等をつかって計算量を減らしたり人手で統計を用意したりして、計算機性能の低さをカバーしてきた
それが計算機性能があがっていきできる事が増えてきた、というのが現在
ワトソンでクイズに答えられるようにまなった

人工知能研究の成果で出来た物は本来はもう人工知能とは呼ばないんだけど、
マーケティング用語というか通りが良いから人工知能ってつけてるわけなんだ
527デフォルトの名無しさん
垢版 |
2017/07/04(火) 13:13:51.50ID:1Tk0DRaF
ID変えてネガキャンする流れからは変えられたみたいだけど今度は人工知能に噛み付きだしたか
そんなに噛み付いて荒らすだけならrubyスレにくるな
rubyの興隆が気にくわないとか知ったことではない
2017/07/04(火) 13:26:47.51ID:2/r2iAfu
>>524
rubyでeachの速度なんて気にする人はwhile使うからそんなこと考えなくていいいよ
2017/07/04(火) 13:29:09.59ID:Qa2xT13J
Rubyで人工知能って書籍はすでにいくつかあるけど、
Rubyでワトソンを解説するってのは凄く面白いと思う
いままでワトソンの資料を個人的に集めて見てきたけど、
ワトソンをRubyで誰でも作れるようになれば、これってrailsの次のRubyブームにならない?
2017/07/04(火) 13:39:30.76ID:jC9x4mB4
>>528
俺もwith_indexなんかやめてJavaScriptみたいに
map(やそれに類するもの)は全てインデックスがあればいいと思ってるよ。
速度よりもシンプルさ、可読性のほうが重要
2017/07/04(火) 13:40:58.31ID:Qa2xT13J
深層学習はPythonが有名だけど、
みんながみんな深層学習じゃなくてワトソンのような、技術そのものじゃなくて実用できるものを作りたいんだと思う
だったらRubyで大元の部分をつくっちゃえば良くない?って考えなんだけど
532デフォルトの名無しさん
垢版 |
2017/07/04(火) 13:54:58.37ID:Fv1Dj8Gj
昨日と同じく、眠くなってきた。
カフェインを摂取した。
2017/07/04(火) 14:07:04.87ID:jC9x4mB4
>>531
そうするとRubyで?ことになるんだけどな。

なんでかっていうと、ワトソンみたい物を作る時、
「自然言語分類」にはどのライブラリを使うか?
「検索及びランク付け」にはどのライブラリを使うか?
「文書検索」には略
「会話」には略
「音声認識」には略
「音声合成」には略

これらのライブラリをRubyで再実装するわけじゃあるまい?
再実装するならRubyで作るって話でいいけど
そうでないなら何を組み合わせるか?って話で
検索エンジンであればSolrやElasticsearchを使いましょう。
とかになるだろうし、

Rubyで作るというよりか、既存のオープンソースの何かを使って
システムを構成しましょうって話になると思うよ。

Rubyで大本の部分を作るんじゃなくて、大本の部分はあるから
Rubyでそれらをつなぎましょう程度じゃね?
2017/07/04(火) 15:09:51.34ID:Qa2xT13J
深層学習という技術そのものにおいて相も変わらずPythonは有力な一つの候補だし、ネイティブな所は相も変わらずC/C++で書かれたライブラリがあるわけだけど、
(大勢の人がワトソンクローンを理解、組めるように)Rubyなら(コードを)書きやすい、書き換えやすい、(個人的に)図示しやすい
だからRubyで
という話なんだ

ライブラリの選択どうするの?本の構成どうするの?細部をどうするの?ってのは紙面に依るとしか言えない
ページをだいたいこのぐらい見積もるから、こういう構成で行きましょう、ここはこういう形で行きましょう、というのが一般的な普通の流れ
ページが無限ならそれこそRubyの内部の仕組みから全て書けるわけだけど、残念ながらページは有限、でもって何ページになるのかも未定の状態
要はページ数によって内容がダイナミックに変わってしまうという事
それに対して、ページ数やら構成を考えるのに、判断の元となるものが必要となる
個人で書ける本ならその人の持ってるあんちょこでも別段かまわないんだけど、じゃあ複数人でっとなった場合はその個人一人のあんちょこじゃ問題がある(「それって結局、君の場合でしょ?」で終わってしまう)
だからこそ決め打ちでは語れないし、判断の元になるものを"公"に"形式"をとって、(誌面に載るかどうかはおいて置いて)網羅的に準備しなければならないわけなんだ
決め打ちしてそれに基づいて必要とする資料だけを集めて済むなら万々歳なんだけど、そうはいかないんだ

で、Rubyを基本とするからRubyできてもらわなければ困る
だからRuby界隈での実動者が私を含めて必要になるわけなんだよ

自前で用意するものが出てくるかもしれないという話は、当然だけど結局は誌面やら規模やらで判断される
2017/07/04(火) 15:10:33.91ID:A9sYzzwp
NIH症候群にかかるのは企業の要職ばかりではない
フルスクラッチネイティブではない外部ライブラリ拡張ライブラリを「正しくない」と考えてしまうことは…どうしてもある
優れた使い心地のラッパーを作るということは元APIと主言語とUIのすべての理解と研究が必要なのだからもっともっと技術的に誇っていいのだけどもね
2017/07/04(火) 15:13:59.53ID:Qa2xT13J
やっぱりいつの時代も本を書く上ではページ数が全てだよ
2017/07/04(火) 15:18:01.70ID:JdC3mg/z
イテレータの美点は
今までつきまとってきた添え字文化を切り離したとこにあるんだよ
最大サイズ、インデックスの準備、インデックス操作、このへんは本質的じゃないよね
我々がしたいのはホントは、集まってるオブジェクト一個一個を触りたいだけだよねっていう

そのへんわきまえてるのがrubyだと思う
インデックスがデフォで付いてたりするのは原始人じみてる
538デフォルトの名無しさん
垢版 |
2017/07/04(火) 15:32:22.71ID:Fv1Dj8Gj
>>537
なるほど!
初めてeachを見た時、面食らったのを思い出した。
2017/07/04(火) 17:46:25.87ID:nYPV9UDZ
>>508
IBMがワトソンにどれだけ投資したかという話
タダで同じものを作るとは虫が良すぎる
2017/07/04(火) 17:48:12.89ID:nYPV9UDZ
>>513
ワトソンは人工知能でしょ

そこらへんのボットは人工無能だけど
ワトソンはクイズに答えたり
病気の治療見つけたりして有能だから
「無能」じゃないでしょ?
2017/07/04(火) 17:50:26.31ID:nYPV9UDZ
>>522
ニューラルネットだけが人工知能じゃないよ
NN系のディープラーニングの
取り上げられ方が目立つってだけで
定義にしちゃうのはただのミーハー
2017/07/04(火) 17:52:57.98ID:nYPV9UDZ
>>521
人を集める、特に企業と絡むっていうのは
先に一部でも成果を公開しないと難しい
向こう側にメリットがないでしょ?
2017/07/04(火) 17:57:26.81ID:nYPV9UDZ
>>529
>ワトソンをRubyで誰でも作れるようになれば
無理無理

誰でもワトソンは無理
誰でもボットなら可能

Rails本体を誰でも作るのは無理だろ
Railsを利用してブログを作るとかなら可能

だからAPIを使ってボットを作るみたいのなら可能
2017/07/04(火) 17:58:01.46ID:8gzuv+lo
「俺がRubyを使いたいから」で金が集まると本気で思ってるのかな
まあ国内技術を使うことが重要であるとか言ってうまく騙せば公的機関から引き出せるかもしれないけど
君のやろうとしていることは本質的には不必要なガラパゴス化を招き日本の衰退を加速させるだけの国賊行為であることを忘れないように
2017/07/04(火) 18:10:32.16ID:jC9x4mB4
>>537
インデックスそのものと、インデックスを使ったループは別だと思うよ。

ハッシュのmapでキーが取れるように、
配列の場合はキーの代わりにインデックスってだけだと思う。

キーとインデックスって本質的には違いはないでしょ?
2017/07/04(火) 18:13:20.70ID:jC9x4mB4
>>543
誰でもワトソンを作るは無理でも、
誰でも既存のオープンソースを繰り合わせて
ワトソン相当を作ることは可能だよ。

ただクイズ番組とかワトソンの成果っていうのは
ワトソンというソフトよりも、大量のデータを投入させた所にあるので、
仮にワトソンそのものを入手したとしても、クイズ番組優勝とかは無理だよ
膨大なデータをひたすら入力する地道な作業が必要
2017/07/04(火) 18:22:23.28ID:nYPV9UDZ
>>546
>ワトソン相当を作ることは可能だよ
甘く見過ぎ
そんな簡単ならIBMより先にもっとできてた

>膨大なデータをひたすら入力する地道な作業が必要
それもワトソンのうちなんじゃないの?

ゲームからデータ抜いたらゲームじゃない
知能から知識抜いたら知能じゃない
2017/07/04(火) 18:24:30.73ID:8gzuv+lo
>>547
ワトソンは知識はユーザーが与えるんだよ
単なる検索エンジンと思えばいい
2017/07/04(火) 18:25:37.93ID:Qa2xT13J
>>543
Rubyでワトソンを解説ってのがスッポ抜けてるけど大事なところだよ
2017/07/04(火) 18:26:26.94ID:nYPV9UDZ
>>548
ワトソンはたんなる検索エンジンじゃない
仕組みが似てる部分はあるけど
たんなる検索エンジンはクイズに答えられない

知識の与え方と引き出し方も
エキスパートシステムのうち
そこをすごく甘く見てる
551デフォルトの名無しさん
垢版 |
2017/07/04(火) 18:27:32.37ID:1Tk0DRaF
ネガキャンが人工知能に噛み付いてくたおかげでスレがいくらか平和になったな
相変わらずうざいけど
2017/07/04(火) 18:32:42.18ID:nYPV9UDZ
>>549
ワトソンは無理だから絵に描いた餅だよ

Rubyで人工無能みたいな本はあるし
その辺のラインが現実的だと思う
2017/07/04(火) 18:38:48.19ID:Qa2xT13J
ワトソンの解説をRubyのコードをつかって行うって事が重要なのに
ってなんか話が噛み合わないなと思ったら単にレスを適当にしか読んでなかったのか

納得
2017/07/04(火) 18:41:41.93ID:jC9x4mB4
>>547
> >膨大なデータをひたすら入力する地道な作業が必要
> それもワトソンのうちなんじゃないの?

そこに一般の人が考える人工知能の違いがあるんだよな。
大変な仕事をコンピュータが自動でやってくれるのと同じように考えてしまう。

人工知能は自動で知識をあつめてくれるわけじゃない。

コンピュータが利用できる形にデータ化されているものであれば
それを解析するのは得意だけど、そうなってないものを
データ化する作業っていうのは人間がやるしか無い。
2017/07/04(火) 18:45:16.48ID:nYPV9UDZ
>>553
あのね

WindowsみたいなOS、Googleみたいな検索エンジン、
作ったら大もうけできるのに何で寡占されてると思う?

そこまで行かなくてもRubyみたいな言語作ったら
解説本くらいは書けるだろうけど
Rubyと同じくらい普及してる日本発の言語はないよね?

なんでワトソンなら自分にもできると思っちゃうの?
2017/07/04(火) 18:47:18.87ID:nYPV9UDZ
>>554
違う違う

データを全自動で集めると思ってるわけじゃない
その「データ化する作業」も含めてワトソンでしょって言ってるの
2017/07/04(火) 18:48:27.80ID:jC9x4mB4
>>550
> たんなる検索エンジンはクイズに答えられない

だからクイズに答えれるように人間がデータを入れるんだよ。

クイズの多くは知識問題。
例えば総理大臣の名前とか。

ありとあらゆるクイズの問題と答のペアを登録していくことで
クイズ専用のデータベースを作る。

ウェブサイトの検索エンジンがクイズに答えられないので
データベースががウェブサイトだから。
ウェブサイトは人間用の文章がほとんどなのでクイズのデータとしては適切じゃない

だからクイズに適したデータベースを作り上げる。
そういう作業を人間が行うんだよ。

それを行える人間は知能があるということになるし、
人間の知能を使ってデータベース化すれば
人工知能とやらはデータベースを検索するだけでいい。
2017/07/04(火) 18:50:11.16ID:jC9x4mB4
>>566
> その「データ化する作業」も含めてワトソンでしょって言ってるの

人間が行う作業も含めて、ワトソンっていってる?
例えば自動車を運転する人間は、自動車の一部。みたいな
2017/07/04(火) 18:51:28.49ID:nYPV9UDZ
>>557
それは対話UIの部分を軽視してる

たしかにエキスパートシステムも
DBの問い合わせは行うが
たんなる検索エンジンとの違いは
対話システムを備えているところで
そこが思っているほどかんたんじゃないんだな
2017/07/04(火) 18:55:30.46ID:8gzuv+lo
IBMのビジネスモデルは基本的にパッケージ販売とSIなので、
学習済みのワトソンのAPIを提供して終わり、だとあまり意味がないわけ
IBMとしては、クソ高いパッケージとして買わせてサポートもがっつり付けてもらって、その上あわよくば下請人員まで投入して大規模案件を作りたい
だからワトソンはセルフサービスでなきゃいけないんだよ
応用として医療分野を執拗に推してるのも、医療分野はプライバシーの問題があるのでSaaSに食われにくいという面があるの
2017/07/04(火) 18:57:49.38ID:nYPV9UDZ
>>558
たとえばRubyは標準ライブラリまで含めて
みんなRubyとして使ってるでしょ?

Rubyのコアな言語の文法だけを模倣するなら
誰でもできるかもしれないが実用に耐えない

同じようワトソンのコアな検索部分だけなら
模倣できるだろうけど実用に耐えない

ワトソンなんて検索エンジンだから簡単だよって言うのは
Rubyなんてインタプリタだから簡単だよって言ってるのと同じ
2017/07/04(火) 19:03:28.55ID:jC9x4mB4
>>559
対話システムは難しいが、その反面間違っても
許されるシステムだから、ある意味簡単とも言える。

そもそも人間同士であっても、相手の言ってることが100%
通じるわけじゃない。言う側に問題がある場合だってあるしね

ある程度正しければ許されるシステムだから裏技が使える。
それは意味を理解しなくても、単語の重要度さえ判断できればいいんじゃないか?
ということ。人間とは違ったアプローチで実装できる。

対話システムというよりも、重要度判断システム
それでもいいんだよ。ある程度の正しさがあれば許されるからね。
2017/07/04(火) 19:08:32.62ID:jC9x4mB4
>>560
> 学習済みのワトソンのAPIを提供して終わり、だとあまり意味がないわけ

面白い(当たり前?)のは、分野ごとに学習済みデータが存在するということ

素人(?)考えで言えば、すべての分野を学習させたスーパーワトソンを
一つだけ提供すればいいと思うかもしれないが、そうはならない。

ようは学習というのはデータベースにすぎないので、
違う業界のデータベースを混ぜて使うと、関係ないデータが
検索で引っかかるようになる、つまりノイズが多い。

そういうところを柔軟に判断してはくれないんだよね。
知能があるわけじゃなくて、単なる検索エンジンだから。
2017/07/04(火) 19:11:35.56ID:jC9x4mB4
結局重要なのはデータベース(学習データ)であるし、
そのデータベースを作るのは人間の地道な作業で、
ワトソンっていうのは最終的には学習データ販売ビジネスになります。
565デフォルトの名無しさん
垢版 |
2017/07/04(火) 19:17:37.33ID:1Tk0DRaF
ID:8gzuv+lo
ID:nYPV9UDZ
ID:jC9x4mB4
この三つのIDが延々ワトソンの謎を話し合っているけど、けっして誰もワトソンの構造について説明しようとしないよな

自演かこれ
誰か団子呼んでこいよ
2017/07/04(火) 19:21:22.51ID:jC9x4mB4
>>565
ワトソンの構造はこちら

https://wirelesswire.jp/2016/11/57683/

> サンプルのソースコードはGithubで公開されています。 
>
>  まずは、IBMが先端技術と考える、その素晴らしい
> "コグニティブコンピューティング"のソースコードを御覧ください。

データがないと何もできないってのがわかるだろう?
2017/07/04(火) 19:24:15.28ID:nYPV9UDZ
同じ話の繰り返しになるからそろそろ切り上げたいけど
Googleなんて検索エンジンだから簡単かっていえば困難でしょ?

データを含まないデータベースの問い合わせ部分だけならできても
ネット全体の規模で検索できるから普及したわけであって

それをなんでワトソンなら自分にもできると思っちゃうのか?
っていうのが言いたい
2017/07/04(火) 19:34:05.92ID:jC9x4mB4
まあワトソンと同等レベルのソフトウェアはできるだろう。
だけど、データベース作成の人力作業コストはどうにもならないってことだ。

データがオープンになればいいんだがねw
569デフォルトの名無しさん
垢版 |
2017/07/04(火) 19:41:51.75ID:1Tk0DRaF
自演あきた?
ならば良し
2017/07/04(火) 19:58:39.76ID:olJiM2Cb
ワトソンのことはよく知らんが、>>566のリンク先のことが本当だったとしたら
あまり面白いものではないな

それはそうとして、別の観点からちょっと思うことがあって
2chで人を集めて研究して本を出版しようって発想がかなりアレなんだわな
2chで人を集めたってゲームですらまともに完成するほうが珍しいってのに
本を出版したりアプリ売って金儲けとかもうね

もし本当にそういうことがしたいんなら、本人だけで
ほぼ完成させて、デモも動いているんだけど、どうよこれ
ぐらいまでは最低でも持って行っておかないと誰も相手にしないっつーかありえないよ
そこまでやっても多分うまくいかないと思うけど

本来なら本人が優秀なら実社会で勝手に人が集まってきて勝手に輪ができて
それでどうこう、って話なんだよ
それを、なんで、2chで人集め?
って時点でもう
それもこんな人の減った末期の2chで
571デフォルトの名無しさん
垢版 |
2017/07/04(火) 20:06:46.34ID:1Tk0DRaF
スレチ

うせろ
572デフォルトの名無しさん
垢版 |
2017/07/04(火) 20:27:17.39ID:1Tk0DRaF
粘着野郎は食事か風呂のどっちかか
あいつ0時過ぎたらまたID変えてまくって何食わぬ顔で荒し行為繰り返しやがる
うぜー
2017/07/04(火) 20:39:45.57ID:/bsbbamh
>>570
技術は面白くないが役に立つ
574デフォルトの名無しさん
垢版 |
2017/07/04(火) 20:44:12.57ID:KFTmH+Xw
>>508
多分Ruby使える人で人工知能に詳しい人を探すより、大学訪ねて人工知能に詳しい人にRuby教えた方が手っ取り早い。
2017/07/04(火) 22:31:25.00ID:C0QCHaIb
ちょっと前まで何十億掛けてAIに東大の入試問題解かせて合格させようってプロジェクトがあったけど
それ以上のプロジェクトを気軽に始めようとする人って素敵☆()

壮大な目的はあるけど人集めが初心者スレなのは笑う所かなw
576デフォルトの名無しさん
垢版 |
2017/07/04(火) 22:44:59.86ID:KFTmH+Xw
案外そういう怖いもの知らずのが成功するから世の中分からんね。
パラボラアンテナもスパコンのけい
577デフォルトの名無しさん
垢版 |
2017/07/04(火) 22:46:30.79ID:KFTmH+Xw
途中で送信。。。
スパコンの京も、海外より予算少ないのに海外より性能良かった。
パラボラアンテナなんか、それで世界に広がった。
578デフォルトの名無しさん
垢版 |
2017/07/04(火) 22:47:49.56ID:KFTmH+Xw
フロッピーディスク、切り口で怪我をしない缶詰めetcetc...
2017/07/04(火) 23:28:44.33ID:olJiM2Cb
まずまともな人望があったらこんなところで人集めの質問しないだろってのがあってだね
逆に一人でもやり遂げてやるぜって訳でもなさそうだし
そーゆー部分を見て、判断しよるよ、大人は
内容とか以前に
2017/07/05(水) 05:47:53.58ID:WM8wHrYP
どうやって正答のための元となるデータを形成するか、どうやって問から正答を導く処理を行うか
この二つがワトソンにとって重要な部分なんだけど、文で色々書くよりRubyのコードで示した方がわかりやすいと思う
IDをかえて一人で書き込んでいる人のレスみてるとやっぱりそこを理解できていないみたい
2017/07/05(水) 12:01:58.02ID:Qpg00Afa
>>428
ハトむぎ茶だっけ
2017/07/05(水) 13:25:37.62ID:UBafGJG+
ヒヒヒヒヒ
2017/07/05(水) 13:44:49.29ID:Qpg00Afa
っつーかむぎ茶も出所しておまいらくらいの歳になってんだな
2chに住み着いてるかもな
2017/07/05(水) 16:49:24.95ID:ZXlk9SbS
スレの流れをぶった切って質問。
当方、数日前に
Rubyを2.1.5 -> 2.4.1へとアップグレードしたのだが、
なんかスクリプトの実行速度が3割から4割遅くなった。

実際のところ、以前の2.1.5はgcc5.3.0でソースからビルドしたブツで、
今回入れた2.4.1はgcc7.1.0(これもちょっと前に入れた)でビルドしている。

ちなみにうちの環境だとdtrace関係でminirubyが落ちるので、
configure --disable-dtraceが必要だった。(2.1.5は無い)

正直rubyが遅くなったのかgcc等他に問題があるかどうかも判らないんだが、
2.1以降の各バージョンでのベンチマークとか、
変更点で遅くなったとかの情報が集まっているサイト等、
知っていたら教えて欲しい。

ちなみにOSは32bit版FreeBSD 10.1系とかなりマイナーな環境。
2017/07/05(水) 18:14:21.42ID:WM8wHrYP
プロファイラで旧と新それぞれまわしてどこに時間がかかってるかみてみたら?
http://blog.livedoor.jp/sonots/archives/39380434.html
2017/07/05(水) 18:40:35.78ID:nlxiuXwv
>>584
ruby-2.4.1もgcc5でビルドして比較してみたらどう?
あるいはruby-2.1.5をgcc7で比較するとか
新しいものが常に最良とは限らないし
2017/07/05(水) 18:54:07.87ID:nlxiuXwv
>>586
自己補足

個人的で尖りまくったものを述べるよ
以前、とあるInteger関係のベンチマークを比較した事があったけど
(速い) ruby-2.4 > (ruby-2.3, ruby-2.2) > ruby-2.0 > ruby-2.1 (遅い)
という結果になった

ゴンパイラはgcc8-devel、FreeBSD-11-AMD64上で実行
2017/07/05(水) 20:40:32.03ID:IBgoqo2I
http://takenaka-akio.org/etc/benchmark/
どうも、40倍〜200倍ぐらいは遅くなることを覚悟しないとダメ見たよ
仮に100倍遅くなるとしたら、3GHzのCPUが「30MHz」相当になるってことだから
ちょっと無視できるようなものではないね
コードの書き方を工夫するなどしても、100倍の差はなかなか埋まるものではないよな
もともと1秒で済んでいたはずの処理に100秒もかかることになるし
ここまで遅いと、ちょっとしたことが命取りになってくる
最初見積もっていたより処理に二倍の時間がかかかるようになってしまった場合
1秒が2秒になるのは1秒増えるだけだから我慢できても
100秒が200秒になるのは、追加の+100秒もは我慢できないとおもうよ
589デフォルトの名無しさん
垢版 |
2017/07/05(水) 21:36:48.67ID:LKhZWwoW
すまん
誰か>>588 の言っている事を翻訳してくれ
590デフォルトの名無しさん
垢版 |
2017/07/05(水) 21:42:41.90ID:z3CI8qH6
処理の規模によってはアルゴリズム考えないとヤヴァイぞ☆
って言ってる。
2017/07/05(水) 21:57:18.69ID:i6JVabOm
アセンブラで書くのが絶対的正義ってことでしょ
2017/07/05(水) 22:00:41.82ID:IBgoqo2I
二つの意味が含まれているから確かにわかりにくな

まず一つ目は、既に100倍ぐらい遅いんだから
今更、3〜4割遅くなったぐらいで騒ぐほどのことじゃない
速度が欲しかったらほかの言語を使え

二つ目は、100倍も遅いということは、3.0GHzの最新CPUを使っていたとしても
実質30MHzのCPUを使っているようなものだから
ほんのちょっとしたことが命取りで、更なる3〜4割もの性能ダウンは到底無視できない
考えてもみれば、100MHzのCPUが主流だったころは、本当にシビアだったとおもう
最適化最適化で、1クロック縮めるのに命を懸けている人たちもいたね
今更そういった時代に逆戻りしてしまうのはなんだかなーと思うし
速度がほしかったらほかの言語を使え

何故か同じ結論にたどり着くわけだが、Rubyではよくあること
593デフォルトの名無しさん
垢版 |
2017/07/05(水) 22:03:48.33ID:z3CI8qH6
昔はね。
C++でさえCからすれば遅い言われてた。
(これは理論上今でも、再利用性を得る代わりに遅くなる。C++はCの後継として、遅くなるのを最小限に抑える仕様。でも確実に遅い)
でも、CPUの進歩やコンパイラの進歩で人間が直接アセンブラ触るより速いと言われてる。
2017/07/05(水) 22:09:10.95ID:W7p06HKZ
Railsみたいに、I/O 処理があれば、C/C++でも遅くなるから、Rubyと大差ない

一方、数学・アルゴリズム系で、I/O 処理がなければ、C/C++が断然速い
595デフォルトの名無しさん
垢版 |
2017/07/05(水) 22:21:10.70ID:LKhZWwoW
つまりちょっと前からいるIDを変えてトンチンカンな書き込みを続ける例の荒らしだな

失せろ、スレチだボケェ
■ このスレッドは過去ログ倉庫に格納されています