タグ

ブックマーク / enakai00.hatenablog.com (19)

  • 「ITエンジニアのための強化学習理論入門」が発売されます - めもめも

    www.amazon.co.jp 表題の書籍が技術評論社より発売されることになりました。執筆にご協力いただいた方々には、あらためてお礼を申し上げます。販売開始に先立って、「はじめに」「目次」「図表サンプル」を掲載させていただきますので、先行予約される方の参考にしていただければと思います。 はじめに 「Q LearningとSARSAの違いを説明してください。」皆さんは、この質問に即答できるでしょうか? 書を読めば、自信を持って答えられます! —— と、謎の宣伝文句(?)から始まりましたが、少しばかり背景を説明しておきましょう。 2015年に『ITエンジニアのための機械学習理論入門』(技術評論社)を出版させていただいた後、驚くほどの勢いで機械学習の入門書が書店にあふれるようになりました。そしてまた、回帰モデルによる数値予測、分類モデルによる画像データの識別など、教師データを用いた機械学習

    「ITエンジニアのための強化学習理論入門」が発売されます - めもめも
  • Google Colaboratory を用いた演習環境の準備手順(TensorFlowによるニューラルネットワーク入門編) - めもめも

    はじめに、Google アカウント(Gmail アカウントと同じもの)を取得しておいてください。 Google Colaboratory にアクセスして、新規ノートブックを開きます。 コード用のセルで次のコマンドを実行して、Google Driveをノートブックの実行環境にマウントします。 from google.colab import drive drive.mount('/content/gdrive')「このノートブックに Google ドライブのファイルへのアクセスを許可しますか?」というポップアップが表示されるので、「Google ドライブに接続」をクリックします。さらに、Google ドライブのアカウントを選択すると「Google Drive for desktopGoogle アカウントへのアクセスをリクエストしています」というポップアップが表示されるので、「許可」を

    Google Colaboratory を用いた演習環境の準備手順(TensorFlowによるニューラルネットワーク入門編) - めもめも
  • 「技術者のための基礎解析学」が発売されます! - めもめも

    www.shoeisha.co.jp 『ITエンジニアのための機械学習理論入門』(技術評論社)、そして、『TensorFlowで学ぶディープラーニング入門』(マイナビ出版)を出版させていただいた後、「機械学習に必要な数学をもう一度しっかりと勉強したい!」ーー そのような声を耳にすることが次第に増えてきました。とりわけ、私の書籍の熱心な読者の方から「このにある数式を理解したくて、あらためて数学の勉強を始めました!」という声を聞き、何かその手助けができないか・・・と真剣に考えていた折、翔泳社の片岡仁氏から「数学でも書きませんか?」とのお声がけをいただき、書の構想が始まりました。決して初心者向けとは言い難い、格的な数学書の企画に賛同いただき、書籍化に向けた支援をいただいたことにあらためて感謝したいと思います。また、書の原稿を隅々まで確認していただいた、査読者の方々にもこの場を借りてお

    「技術者のための基礎解析学」が発売されます! - めもめも
  • 機械学習におけるカーネル法について - めもめも

    何の話かというと 機械学習におけるカーネル法の説明で、よく登場するのがこちらの図です。 左側の (x, y) 平面上の点を分類する場合、このままだと線形分類器(直線で分類するアルゴリズム)ではうまく分類できないのが、右図のように z 軸を追加してデータを変形すると、平面できれいに分割できるようになって、線形分類器による分類がうまくいくというものです。このように、高次元空間にデータを埋め込むことでうまいこと分類するのがカーネル法の仕組みだというわけです。 なのですが・・・・・・・・・・・・・・・・・・・・ これ、当にカーネル法の原理を知っている方には、ちょっと気持ち悪くないですか? ※ 以下はカーネル法を知っている方向けのつぶやきです。 上記の例は、データの配置にあわせて、うまいこと z 軸方向の変形をしているのでうまくいっているのですが、カーネル法には、データの配置にあわせてうまいこと変

    機械学習におけるカーネル法について - めもめも
  • TensorFlow Tutorialの数学的背景 − TensorFlow Mechanics 101(その1) - めもめも

    何の話かというと まず、下記の記事では、2次元平面を直線(一次関数)で分類するという問題を解きました。 enakai00.hatenablog.com 続いて、下記の記事では、2次元平面を多次元空間に拡張することで、手書き文字の分類ができることを示しました。これは、TensorFlow Tutorialの最初に登場する「MNIST For ML Beginners」と同じ処理にあたります。 enakai00.hatenablog.com そして、TensorFlow Tutorialの下記の例では、次のステップとして、「一次関数をニューラルネットワークに置き換える」という拡張を行っています。 ・TensorFlow Mechanics 101 ここでは類似の拡張を2次元平面の分類問題に適用することで、ニューラルネットワークの質をわかりやすく解説していきます。 問題設定 冒頭の記事では、い

    TensorFlow Tutorialの数学的背景 − TensorFlow Mechanics 101(その1) - めもめも
  • TensorFlowのSavedModelに関するメモ - めもめも

    何の話かというと TF1.0から、新しいモデルの保存形式として、SavedModelが導入されました。 (参考)TensorFlow SavedModel このフォーマットの特徴と使い方のTipsをまとめます。 SavedModel形式で保存する方法 典型的には、Experiment APIを利用します。Experiment APIは、tf.contrib.learnの中でも最もハイレベルなAPIで、 ・モデル ・トレーニング用データ入力関数 ・評価用データ入力関数 を与えて実行すると、トレーニング用データでトレーニングを行いつつ、適当なタイミングで評価用データによる評価結果も出力してくれるというものです。しかも、Experiment APIを利用したコードを Cloud MLE のジョブに投げると、何も考えなくても、自動的に分散学習処理が行われます。また、学習途中のチェックポイントを自動

    TensorFlowのSavedModelに関するメモ - めもめも
  • 分散学習用TensorFlowコードの書き方 - めもめも

    何の話かというと Google Cloud MLを利用して、TensorFlowの分散学習を行う方法です。取り急ぎ、自分用のメモとして公開しておきます。 分散学習にはいくつかのパターンがありますが、最もシンプルな「データ分散」の場合を説明します。各ノードは同じモデルに対して、個別に学習データを適用して、Variableを修正する勾配ベクトルを計算します。それぞれで計算した勾配ベクトルを用いて、共通のVariableを修正していきます。 前提知識 TensorFlowの分散学習処理を行う際は、3種類のノードを使用します。 ・Parameter Server:Workerが計算した勾配ベクトルを用いて、Variableのアップデートを行います。 ・Worker:教師データから勾配ベクトルを計算します。 ・Master:Workerと同様の処理に加えて、学習済みモデルの保存やテストセットに対する

    分散学習用TensorFlowコードの書き方 - めもめも
  • Jupyter演習環境の準備手順 - めもめも

    この手順では、メモリが4GB以上、CPUが4コア以上の環境を前提としています。 macOSを使用する場合 macOS用のDockerが対応しているのは、Yosemite以降のバージョンです。ここで紹介する手順は、El Captitanで動作確認をしています。 はじめに、Dockerの公式Webサイトから、macOS用のDockerをダウンロードします。「Getting Started with Docker」のリンクからダウンロードページを開いて、「Download Docker for Mac」をクリックすると、インストーラーファイル Docker.dmgがダウンロードできます。インストーラーを開いて、DockerアイコンをApplicationsフォルダーにコピーした後、ApplicationsフォルダーからDockerを起動します。初回の起動時は、インストール処理のポップアップが表示

    Jupyter演習環境の準備手順 - めもめも
  • (日本語版) Cloud ML Super Quick Tour - めもめも

    cloud.google.com 何の話かというと 先日、Google Cloud MLがベータ公開されました。超ざっくりまとめると、GCPのクラウド上で次のことができるようになります。 (1) TensorFlowのコードを実行して学習済みモデルを作成する (2) 学習済みモデルをAPIサービスとして公開する(現在はアルファ版) (1)については、ハイパーパラメーターの自動チューニングや分散学習処理なども利用できるのですが、ここでは、単純に、既存のTensorFlowのコードをCloud MLに載せるための最低限の手順を説明します。 例として、下記のサンプルコードを使用します。全結合層のみの単層ニューラルネットワークでMNISTデータセットを分類する簡単な例です。 ・MNIST single layer network.ipynb ローカルで実行する場合からの修正点 まず、コードの実行に

    (日本語版) Cloud ML Super Quick Tour - めもめも
  • 「TensorFlowで学ぶディープラーニング入門 ~畳み込みニューラルネットワーク徹底解説~」が発売されます - めもめも

    TensorFlowで学ぶディープラーニング入門 ~畳み込みニューラルネットワーク徹底解説~ 作者: 中井悦司出版社/メーカー: マイナビ出版発売日: 2016/09/28メディア: 単行(ソフトカバー)この商品を含むブログを見る 表題の書籍がマイナビ出版より発売されることになりました。執筆にご協力いただいた方々には、あらためてお礼を申し上げます。販売開始に先立って、「はじめに」を掲載させていただきますので、先行予約される方の参考にしていただければと思います。 はじめに ディープラーニングの世界へようこそ! 書は、機械学習データ分析を専門とはしない、一般の方を対象とした書籍です。―― と言っても、ディープラーニングの歴史人工知能の将来展望を語る啓蒙書ではありません。ディープラーニングの代表とも言える「畳み込みニューラルネットワーク」を例として、その仕組みを根から理解すること、そし

    「TensorFlowで学ぶディープラーニング入門 ~畳み込みニューラルネットワーク徹底解説~」が発売されます - めもめも
  • Using notMNIST dataset from TensorFlow - めもめも

    Using MNIST dataset from TensorFlow Google's TensorFlow provides a library for using MNIST dataset in a simplified manner. This is a three-line code to prepare the dataset. import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets("/tmp/data/", one_hot=True) Now you can access the dataset through the following objects. mnist.train.imgaes #

    Using notMNIST dataset from TensorFlow - めもめも
  • 「TensorFlow Tutorialの数学的背景」シリーズの目次 - めもめも

    TensorFlowを使って、実際にコードを動かしながら、DeepLearningの仕組みを段階的に学んでいきましょう。 目次 ・No.1 TensorFlow Tutorialの数学的背景 − MNIST For ML Beginners(その1) 平面上の2種類のデータをロジスティック回帰で直線的に分類するという、機械学習の基礎を説明します。 ・No.2 TensorFlow Tutorialの数学的背景 − MNIST For ML Beginners(その2) 線形多項分類器とソフトマックス関数で、3種類以上のデータを分類する方法を説明します。 ・No.3 TensorFlow Tutorialの数学的背景 − TensorFlow Mechanics 101(その1) No.1で説明した問題に対して、もっとも単純なニューラルネットワークを適用して、複雑な境界を持つ分類を実現します

    「TensorFlow Tutorialの数学的背景」シリーズの目次 - めもめも
  • TensorFlow Tutorialの数学的背景 − MNIST For ML Beginners(その1) - めもめも

    何の話かというと TensorFlow Tutorialの最初に登場する「MNIST For ML Beginners」では、次の方針で手書き文字の分類器を作成しています。(今の段階では、下記が何を言ってるのか分からなくても大丈夫です。) ・28x28ピクセルの手書き文字画像を各ピクセルの濃度を並べた784次元ベクトルと見なす。 ・784次元ベクトル空間を10箇所に分類する線形の多項分類器を用意する。 ・多項分類器の出力値をsoftmax関数に入れて、784次元空間の各点について、「0」〜「9」のそれぞれの文字である確率を定義する。 ・上記の定義の下で、トレーニングセットが得られる確率を最大にするよう、線形多項分類器のパラメーターを調整する。 これが一体何を言ってるのか・・・ということを数学的に理解していただくことが目標です。今回は、下準備として、より単純化したデータで上記と同じ処理を実装

    TensorFlow Tutorialの数学的背景 − MNIST For ML Beginners(その1) - めもめも
  • 「ITエンジニアのための機械学習理論入門」が発売されます。 - めもめも

    gihyo.jp 表題の書籍が技術評論社より発売されることになりました。 書の内容をまとめるにあたっては、国立情報学研究所「トップエスイー」の有志による勉強会で行った議論から、数多くのヒントをいただきました。同勉強会に参加いただいた方々に改めて感謝します。「ITエンジニアのための」と題されていますが、機械学習に興味のある方、これから機械学習を勉強してみたいという方であれば、どなたでも楽しんでいただける内容に仕上げることができました。 Amazonで予約が開始されていますが、参考として、「はじめに」「書が対象とする読者」「各章概要」を公開しておきます。 はじめに 「機械学習」にかかわるITエンジニアが、予想以上に増えているのかもしれない――そんな疑問を抱いたのは1年ほど前の出来事でした。「データサイエンス」や「ディープラーニング」、果ては「人工知能」まで、メディア好みのバズワードが溢れる

    「ITエンジニアのための機械学習理論入門」が発売されます。 - めもめも
  • 「Docker実践入門 ―― Linuxコンテナ技術の基礎から応用まで」が完成しました - めもめも

    表題の書籍が技術評論社より出版されることになりました。2015/9/26より一般販売開始予定です。執筆にご協力いただいた方々に改めてお礼申し上げます。 gihyo.jp 参考として、「はじめに」と「各章概要」を下記に引用しておきます。Dockerの基礎をしっかりと足固めしていただくための書籍です。 はじめに お待たせしました! 「Dockerを使って何かを始めたい」「Dockerでコンテナーは起動したけど中のしくみがよくわからない」 ── そんなあなたに向けたDockerの入門書がようやく完成しました。「コンテナーだから軽くて便利」「アプリケーションの可搬性が高まる」など、さまざまなうわさ話を耳にするDockerですが、まずは書に目を通して、その技術的な特徴、そして、その背後にある「思想」を理解してください。 Dockerは、アプリケーションの実行に必要なファイルをすべてまとめた「コンテ

    「Docker実践入門 ―― Linuxコンテナ技術の基礎から応用まで」が完成しました - めもめも
  • 「Rプログラミング入門」をPythonで書き直す - めもめも

    何の話かというと RStudioではじめるRプログラミング入門 作者: Garrett Grolemund,大橋真也,長尾高弘出版社/メーカー: オライリージャパン発売日: 2015/03/25メディア: 大型この商品を含むブログを見る 某編集長から上記の書籍が送られてきて、「これは、次はRのを書けという指示か????」と勘ぐってみたものの、筆者はPython派なので、「これと同じことは全部Pythonでもできるんだよー」と言いたくなって、このエントリーを書き始めた次第です。ちなみに、この、Rの入門書としてはよくできているので、これのPython版ができたら、それはそれで役に立つ気もします。 なお、このエントリーでは、あくまでコードの部分だけを書き直して、RとPythonの差異についての説明だけを行ないます。コードそのものの説明については、上記の書籍をご購入ください。 環境準備 IP

    「Rプログラミング入門」をPythonで書き直す - めもめも
  • RHEL7/CentOS7でipコマンドをマスター - めもめも

    何の話かというと RHEL7/CentOS7では最小構成でインストールすると、ifconfig、route、netstat、arpなどのネットワーク関連のコマンドが使えません。これは、次のコマンドで「net-tools」パッケージを導入すると解決します。 # yum -y install net-tools しかしながら! RHEL7/CentOS7では、net-toolsを「deprecated(廃止予定)」としており、今後は、iproute2パッケージに含まれる「ip」「ss」などのコマンドを使用することが推奨されています。 ・お客さんのRHEL7サーバーのメンテを頼まれたらnet-toolsが入ってなかった! ・「えー。まだifconfigつかってんのー。」と若い同僚に冷たい目で見られた! ・などなど といった事態に備えて、RHEL7/CentOS7を導入した際には、iproute2

    RHEL7/CentOS7でipコマンドをマスター - めもめも
  • Dockerのネットワーク管理とnetnsの関係 - めもめも

    RHEL7RC+EPEL版Dockerの前提で解説します。RHEL7RCを最小構成で入れて、次の手順でDockerを導入します。 # yum -y install bridge-utils net-tools # yum -y install http://download.fedoraproject.org/pub/epel/beta/7/x86_64/epel-release-7-0.1.noarch.rpm # yum -y install docker-io # systemctl enable docker.serviceDockerが設定するiptablesの内容を見るために(見やすくするために)、firewalldを停止した上でdockerサービスを起動します。 # systemctl stop firewalld.service # systemctl mask firew

    Dockerのネットワーク管理とnetnsの関係 - めもめも
  • ファイル作成時に付与されるSELinuxのセキュリティコンテキスト - めもめも

    SELinuxの簡単な説明 SELinuxでは、事前に定義された「セキュリティポリシー」に従って、あるプロセスがアクセス可能なシステムリソース(ファイル、ネットワークポートなど)を制限することが可能です。RHEL6のデフォルトである「Targetedポリシー」では、RHEL6同梱のアプリケーションについて、事前にいくつかの制限がかけられています。 たとえば、RHEL6同梱のhttpdを導入した状態で、下記のように「/var/www/html/」以下にコンテンツファイルを作成します。 # mkdir /var/www/html/pub # echo 'Hello World!' > /var/www/html/pub/index.htmlできたディレクトリやファイルの「セキュリティコンテキスト」を表示すると、「httpd_sys_content_t」というキーワードが見えます。(lsに「-Z

    ファイル作成時に付与されるSELinuxのセキュリティコンテキスト - めもめも
  • 1