こんにちは。
今回は、ディープラーニング(深層学習 Deep Learning)について、少しお話をしたいと思います。テレビなどでも「人工知能」に関するニュースが多くなってきましたが、いずれも、このディープラーニングという手法が背景にあるようです。
●画像認識と強化学習(DQN)を中心とした、ディープラーニングの書籍「実装 ディープラーニング」をオーム社から出版しました。詳しくはこちらをご覧下さい。
まずは、簡単な一次関数の問題から始めます。
問題 1 2点P(1, 1)、Q(3, 4)を通る1次関数 \(y = ax + b\) について \(a\)、\(b\)の値をそれぞれ求めましょう。
これは、中学校で勉強する1次関数についての問題です。次のような連立方程式を解けばよいですね。
\[
\left\{
\begin{eqnarray}
a + b &=& 1 \\
3a + b &=& 4
\end{eqnarray}
\right.
\]
これを解いて、傾き \(a = 1.5\) 、切片 \(b = -\ 0.5\) となります。求める1次関数は、
\[
y = 1.5x\ -\ 0.5
\]
です。
この1次関数をグラフにかくと、次のようになります。2点をピッタリ通る直線を1...
More
開発ブログ
iPhone と Android の Web サイト表示速度の比較
今やスマホの普及率は約50%にもなりました。2人に1人はスマホで Web サイトを見ていることになりますね。そこで今回は、iPhone vs. Android をお届けします。と言っても、価格の比較でも機能の比較でもありません。Web サイトにアクセスしたときの表示速度の比較です。
果たして差があるのか? TrafficPatrol2 に追加された、スマートフォン実機による計測機能を利用して、実験してみました。
※なお、本記事は iPhone と Android とのどちらが良いかのお話ではありません。
使用機種
使用したスマホの機種は次のとおりです。インターネットにつながる回線は、共通(社内の Wi-Fi 回線)にしました。
iPhoneAndroid
メーカーAppleLG
機種名iPhone 5SNexus 5
OSiOSAndroid
バージョン9.16.0.1
通信環境Wi-Fi
ブラウザSafariChrome
シナリオ
TrafficPatrol2では、ブラウザにさせる一連の動きを「シナリオ」と呼びます。今回は、
某 Web サイトにアクセス
ログイン画面表示
ログイン実行(ID 、パスワードを入力)
商品検索
商品詳細へ
カートに追加
カー...
More
書籍「見えないものをさぐる ―それがベイズ」のご紹介
●書籍「見えないものをさぐる ―それがベイズ」のFAQ を作成しました。
こんにちは。今回は、書籍「見えないものをさぐる ―それがベイズ」について、本の目次を中心に、内容を少しご紹介したいと思います。
「ベイズには興味はあるけど、とっても難しそうで、どんな所で役立っているのかもよくわからない」という方も多いと思います。そのような方が、ノートパソコンを片手に気軽に読んで、「面白いなー」と思っていただける本を目指しました。
第1章 宇宙から届いた箱の中身をさぐる - これがベイズの考え方
第1章では、ベイズの定理の考え方や、この書籍の全体像について説明しています。
宇宙から届いた箱の中身を、箱に手を差し込んで探ってみようという内容です。
ベイズの定理の式はでてきませんが、手を差し込む、つまり観測で得た情報をもとに、隠れている、「見えない状態」を探るという考え方について述べています。
第2章 病気の検査 - ベイズの定理
第2章でやっと、ベイズの定理がでてきます。
ベイズの定理で例題によくあげられる「病気の確率」を例に、ベイズの定理がどのように使われているかを述べています。
「病気の確率」では、『検査で陽性と判定されても、病気の確率は意外...
More
あやしいサイコロと『隠れマルコフモデル』
こんにちは。
今回は、サイコロを使いながら 隠れマルコフモデル(Hidden Markov Model) をテーマにしたいと思います。
隠れマルコフモデルはDNA解析や、音声解析で利用されている基礎テクニックです。
●ベイズ統計「見えないものをさぐる ―それがベイズ」を出版しました。詳しくはこちらをご覧下さい。
●画像認識と強化学習(DQN)を中心とした、ディープラーニングの書籍「実装 ディープラーニング」をオーム社から出版しました。詳しくはこちらをご覧下さい。
サイコロゲーム
サイコロは、みなさん良くご存じのとおり、1~6 までの目があって、その目の出方(確率)は、どの目をみても「同様に確からしい」というものです。
今回は少し物語風です。
AさんとBさんは、Cさんの家で 3 人でサイコロゲームを行いました。
ゲームはいたって簡単で、それぞれが見えないように数字を紙に書いて、 1 個のサイコロを振って、紙の数字とサイコロの目があっていれば勝ちというものです。
サイコロを振るのはCさんで、Cさんがいわゆる胴元です。
Aさんは、あとでサイコロの目を確認したかったので、出た目をすべて記録していました。
サイコロは全部で 200 回投げられましたが、中盤あたりからCさんの勝ちが目立つようになり、最後はCさんの一人勝ちに...
More
因果関係を確率で表現するベイジアンネットワーク
こんにちは。 今回はベイジアンネットワークをテーマにしたいと思います。
最初にベイズ確率についてお話しします。
●ベイズ統計「見えないものをさぐる ―それがベイズ」を出版しました。詳しくはこちらをご覧下さい。
●画像認識と強化学習(DQN)を中心とした、ディープラーニングの書籍「実装 ディープラーニング」を、オーム社から出版しました。詳しくはこちらをご覧下さい。
ベイズ確率
ベイズの定理でよく例題にあげられるのが、病気の確率の問題です。
<例題>
ある病気を発見する検査法は、その病気の99%を発見するが、健康な人の3%にも反応し誤った診断を下すという。日本国内にはその病気の患者は0.1%であることがわかっている。
さて、ある日本人がこの検査を行なったら病気であると診断された。
この人が本当にその病気の患者である確率は何%か?
病気である事象を B1、病気でない事象を B2、検査で病気と判定される事象を A とすると、例題は下図ように整理することができます。
検査で病気と判定された(A)ときに、その病気である確率(B1)を求めるので、条件付き確率 P( B1 | A ) を求めればよいことがわかります。
ベイズの定理より、P( B1 | A ) = 0.0319 となり、例題の...
More
ベイズ統計とベイズ更新
こんにちは。 今回は少し統計について書きたいと思います。
●ベイズ統計「見えないものをさぐる ―それがベイズ」を出版しました。詳しくはこちら
ベイズ統計の基本的な考え方は、事前確率と事後確率にあります。
例えば、コインAを2回投げて、表と裏が一回ずつでたとすれば、このコインAの表がでる事前確率は0.5 となります。このコインAで、再度2回投げたら2回とも表だったとします。すると、このコインAの表の出る確率、すなわち事後確率は0.75になります。
このようにある事象があった場合に、確率をどんどん変化させていくことをベイズ更新といいます。ベイズ更新は事象があるたびに行うことができるので、ベイズ統計は少ない試行でも、このベイズ更新によって、私たちが経験的に「そうだ」と思うような確率に近づいていくので重宝されています。
ベイズ的に考えなくても、上の例では、合計4回投げて表が3回でたのですから、確率0.75 には納得がいきます。
さて、ここで次のような事例を考えます。
昨年1年間、ある薬Bの効果を調べたら 確率 0.4 で効果があることがわかった。
この調査で100個のデータを集めたのか、あるいは1万個のデータを集めて集計した結果なのかはわかっていません。この薬Bが効く確率(事前確率)は0.4であると...
More
Hadoopは巨大なNFSサーバとして使用できるのか
こんにちは。
今回は「優秀なファイルシステムであるHDFSですが、現行のNFSサーバを置き換えることができるだろうか」という事について考えてみたいと思います。
まず、HDFSのメリットについて再確認してみます。
Hadoop - HDFSのメリット
安価に大容量のファイルシステムが構築できる。
ストレージサイズの拡張が簡単に行える。
分散配置されたブロックごとに通信が発生するため、ファイルの取得・格納スピードが速い。
ファイルのレプリケーションが自動で行われるため、マシントラブルによるデータ喪失が起こりにくい。
データ容量と比例して計算能力を獲得できる。
特に注目すべきなのは 「5. データ容量と比例して計算能力を獲得できる」という事です。
今までのNFSサーバは、ファイルを格納するためだけのサーバというイメージが強く、またそのように使用しているユーザーが大半だと思います。
Hadoopでは、容量拡大のためにスレーブマシンを増やせば増やすほど処理性能も上がりますので、知らず知らずのうちにスーパーコンピュータ並の計算能力を得ることができているかもしれません。
良い事ばかりのように見えるHDFSですが、NFSのようにマウントして使用するには、別のシステムを一つ経...
More
Varnish を使ってサーバーレスポンスを向上させる
こんにちは。
まずはこんな愚痴から始めます。
ECサイトを作成したのはいいけど、レスポンスが遅くてユーザーからクレームが来てる…
今さらソースコードを修正なんて、工数が掛かりすぎるよ…
こんな問題に直面している方、結構いるのではないでしょうか。
そんな時はこれ!「Varnish」を試してみましょう。
Varnishとは
Varnishは、リバース・プロキシー技術をつかった高性能なHTTPアクセラレータです。
一昔前に主流であったSquidよりも高速で動作すると言われています。
静的なhtmlのみならず、PHPやRubyなどで書かれた動的なページもキャッシュ出来るところが大きなポイントです。
Varnishについての詳しい説明と、ダウンロード・インストール関係は こちら にお任せします。
今回は どのように設定すれば、どんな風にレスポンスが改善されるか! を見ていきたいと思います。
機材構成
テストの為に作成した構成では、1台のサーバーにNginx、Varnish、Apacheが共存しています。
SSLにも対応するようにNginxを入れてありますが、HTTP接続のみで良いならNginxは必要...
More
Hadoop上でナイーブベイズを利用して、ニュース記事を分類する
こんにちは。
情報をSNSなどから取得して解析をしようとすると、どうしてもジャンルで分類をする必要が出てきます。
yahooやgooのTOPページにはたくさんのニュース記事が社会・経済・生活・・・と分類されていますよね。
10件や20件であれば、手作業で分類しても良いかもしれません。ですが、数千数万となると手作業で行うには限界があります。
そんな問題を解決するために、ナイーブベイズを利用してジャンル分類を行い、どの程度マッチするものなのかについて書きたいと思います。
●ベイズ統計「見えないものをさぐる ―それがベイズ」を出版しました。詳しくはこちら
ナイーブベイズについて
ナイーブベイズ(naive bayes) は、迷惑メールを分類するためのフィルターとして使われているようです。
基本的にベイズ確率を使用します。
ベイズ(bayes)基本式
分母P(A)は分類を行う時は一定なので、
と考えられます。
Ciがジャンル、Aがテキストに含まれる1つ1つの単語にあたります。
単語AがジャンルCiに含まれる確率を、右辺の式で計算します。
ナイーブと呼ばれる所以は、そもそも単語というものは独立ではないのに、計算上独立のように扱ってしまうこ...
More
Hadoop分散処理の性能評価(MapReduceとSpark)
こんにちは。
Hadoopでは以前よりMapReduceを用いて分散処理を行ってきましたが、
最近、オンメモリで処理を行うSparkという分散処理技術が台頭してきています。
いずれMapReduceは使用されなくなり、全てSparkに置き換わるのではないかとも言われています。
MapReduceとSparkではどの程度、性能に違いがあるのでしょうか。
ここではレコメンドエンジンの作成・実行を通して、MapReduceとSparkの性能評価を行います。
使用するHadoopクラスタは1マスター、4スレーブの5台構成。
各マシンともに低スペック (2Core, メモリ1GB)マシンを使用しています。
性能を比較するのは以下の6パターンです。
MapReduce: スレーブ1台
MapReduce: スレーブ2台
MapReduce: スレーブ4台
Spark: スレーブ1台
Spark: スレーブ2台
Spark: スレーブ4台
レコメンドエンジンの作成
レコメンドエンジンとは何でしょうか。
Amazonや楽天で欲しい物を探していると下の方に「この商品を買った人はこんな商品も買ってい...
More