2018年4月30日月曜日

TensorFlowについて調べてみた

下記のサイトを教材に学んでみることにしました。
TensorFlowとは何か?基礎の基礎をわかりやすく解説!

TensorFlowを始めるにあたり、機械学習や深層学習といった基礎知識は必要となります。
とありましたので、サイトの誘導どおりに読み進めます。

①【簡単入門】機械学習初心者がまず最初にやるべき5つのこと

1.まずは概要をつかむ

10分でわかる】機械学習とは?どこよりもわかりやすく解説!

<なぜ機械学習が注目されるのか>
機械学習が注目される大きな理由として、「大量のデータから自動的に短時間で正確な結果を得ることができること」が挙げられます。

コンピューター自身の処理速度が上がり大規模なデータも扱えるようになったこと、低価格化が進んで扱いやすくなったことも理由の1つです。

<人工知能と機械学習の違い>
人工知能は、ざっくりいうと「人間の知能と同じ特徴を持つ複雑なマシンを構築すること」といえます。

機械学習は、その人工知能を実現するための方法の1つです。

機械学習とは「データから反復的に学習し、そこに潜むパターン(特徴)を見つけ出すこと」です

<機械学習について>
機械学習には大きく分けて3種類あります。
  • 教師あり学習
  • 教師なし学習
  • 強化学習
3種類です。

教師あり学習とは、あらかじめデータと特徴を紐付けておき、新しいデータがどこに分類されるかを予測する手法です。

問題(データ)と答え(特徴)を教えるということが、教師のような役割を果たしているので「教師あり学習」と呼ばれているのでしょう。

<教師あり学習>
教師あり学習は一般的に、「過去のデータから将来起こりそうな事象を予測すること」に使われます。

IMG_0083.png
具体的には、「迷惑メールの判別」や「明日の天気や気温の予測」などで用いられています。

<教師なし学習>
教師なし学習とは、与えられたデータから規則性を発見して学ぶ手法です。

教師あり学習の場合は、あらかじめ正解を与えていましたが、教師なし学習はその答えを導き出すことを目的とします。

そのため、教師なし学習は、正解・不正解が存在しないのが最大の特徴です

IMG_0084.png

具体例では、おすすめのメニューや商品を紹介する「レコメンド機能」や電子メールの分類などに使われています。

<強化学習>
強化学習は教師あり学習に似ています。
大きな違いは、教師あり学習では明確な「答え」を与えますが、強化学習では与えないことです。

強化学習では答えの代わりに、「行動」と「報酬」を与えます。

どのような行動をとれば報酬を最大でもらえるかということを学習していきます。
これは、分かりやすい例でいうと囲碁や将棋などのAIで利用されています。

IMG_0085.png

行動を繰り返し、報酬が大きくなった行動に高いスコア、報酬がもらえなかった行動に低いスコアをつけていくことで、その場で最も効率がいい行動がとれるようになるというものです。

2.目的を見極める





3.入門コンテンツで学び始める
4.本で理解を深めていく
5.実際に手を動かしてみる






2018年3月27日火曜日

IISについて(1)

タイトルどおり、業務で少々さわることになったので
なんとなくの知識を少しでも確かなもの?!(にはならないかも)に
するために調べたことを書き残しておきます。

今回、参考にしたのはこれ
Microsoft
インターネットWebサーバー構築ガイドライン【ドラフト版】
https://msdn.microsoft.com/ja-jp/ff625168.aspx

随時アップします。
こんな章立てです。

序章 インターネットと Web サーバー
マイクロソフトの Web サーバー
インターネットのサイトを見るとは実際にはどういうことか
Web サーバーの仕組み
クライアントと Web サーバー間の通信
Web サーバーのインターネットへの公開

第 1 章 IIS をインストールしよう
インストールする環境
本書で使う環境
クライアント OS のインストール方法
サーバー OS のインストール方法
コラム: Server Core のインストール方法

第 2 章 IIS の動作を見てみよう
IIS にアクセスする
インターネット アクセスとファイル共有
ローカルホスト (localhost) へアクセスしてみよう
管理ツールで設定を見てみよう
なぜ IIS マネージャーのデザインを変更したか
IIS を構成するものは何?
インストール後 あるいは サイト作成後に何も作らなかったのに?
設定ファイルを見てみよう (applicationHost.config)
IIS を開始・停止・再起動するには
アクセスされた足跡の確認

第 3 章 ページを公開しよう
IIS での公開方法を知ろう
HTML ファイルを公開してみよう
インデックス ファイルを設定する
ほかの場所にあるファイルを見せるには
コラム: IIS が処理できるデータの種類を追加するには

第 4 章 さまざまなサーバーの設定
IIS ユーザーごとに公開ディレクトリをつくるには
ディレクトリごとの設定ファイルを使用するには
複数のサーバーに見せるには

第 5 章 アクセス制限の仕組みを知ろう
なぜ要求を制限するのか
IP アドレスやドメイン名で要求を制限するには?
認証を設定するには?
ファイル システムを介してアクセスを制限するには?

第 6 章 アプリケーションを実行環境を設定しよう
Web で使用されるアプリケーションとは?
IIS で実行できる Web アプリケーションの種類
ハンドラー マッピングの考え方
IIS での "アプリケーション" とは
アプリケーションの実行環境
SSI を使えるようにするには
コラム: IIS 7 での Web アプリケーションの開発環境

第 7 章 IIS の拡張機能を使おう
IIS 7 の拡張機能の生い立ちは?
拡張機能はどうやって入手するの?
それぞれの拡張機能は何ができるの?
人気のダウンロードって何?

第 8 章 SSL に対応しよう
なぜ SSL のような技術がよく使われるのか
SSL とは?
SSL を利用するための環境要件は?
サーバー証明書を入手するには?
SSL を要求するようにサイトを構成するには?
FTP で SSL を利用するには?

第 9 章 ログやトレースを活用しよう
IIS が出力する様々な情報
アクセス ログ
失敗した要求のトレースとは?
ワーカー プロセスの監視
イベント ログ

第 10 章 動作状態の確認と性能向上
IIS は マイクロソフト製品なのでブラック ボックスなのか?
実行状態を見ることができるのは何故なんだろう?
Appcmd.exe、Windows PowerShell の活用方法
性能向上に利用できるさまざまな機能や情報
内部的な詳細性能を見たい時にはどうするか?
SEO Toolkit って SEO 向け情報収集だけ?
IIS 7 の HTTP 圧縮機能とは?
IIS 7 の出力キャッシュ機能とは?
コラム: 性能向上のための Tips 集

第 11 章 セキュリティ対策を考えよう
Windows Server 2008 セキュリティ ガイドって?
Microsoft Security Compliance Manager って何ができるの?
Web サービスの強化
セキュリティは既定で実装
攻撃対象となる各機能
セキュリティ対策
参考になる補足情報

序章 インターネットと Web サーバー
WindowsXPだとオーバーフローした際、エラーを返したが
IIS7からはキューに溜まるだけでエラーにならない(処理遅延)

第 1 章 IIS をインストールしよう
最低限のものだけで構築するServer Coreインストールについても触れてあります。

第 2 章 IIS の動作を見てみよう
ドメインの意味
 ①サーバ管理者を支援する仕組み
  →いわゆるADとか系
 ②http通信する際の宛先情報
 この①と②で同名なので混乱しやすいとか言う話

インデックスファイル=既存のドキュメントについて
使いどころは分かるような、分からないような

inetmgrで起動

IISのサイトとは(言葉の定義)
→通信ポート、ドメイン名と紐づく単位。
 ポート、IPアドレス、ドメイン名を指定。
 ポート番号を変える=サイトを設定変更

w3wp.exe
→IISのプロセス
 アプリケーションプール

サーバー全体の設定 → applicationHost.config
サイト単位やアプリケーション単位 → web.config

コマンドいろいろ
iisreset /start   サーバー全体の開始
iisreset /stop    サーバー全体の停止
iisreset /restart サーバー全体の再起動
Appcmd.exe(アプリケーションプール、サイトに対するコマンド)

今後のことを考えるとPowerShellに慣れておくといいよ!のコメントあり。

力尽きたので、次回へつづく。。。。

2017年12月6日水曜日

タスクのコツ

いつまでにやるべきか(期限)ではなく、いつまでに着手すべきか!

2017年10月21日土曜日

Java SE 9/EE 8リリースイベント 兼 JavaOne 2017 報告会 @ 東京に行って来た

台風接近前アナウンスが流れる地下鉄に揺られながら、参加してきましたので書き残しておきます。

ヤフーオフィスでの開催でしたが、会場では飲食自由ということでうちの会社ではあと10年は実現しなさそうw

あくまで個人的な備忘録的なメモなのであしからず、、、

◾︎JavaOne 2017 Overview & Announcements 
by 伊藤 敬さん (日本オラクル)

JavaOne概要説明がはじめにありました。
Mark氏はJavaSE9発表ということで、上機嫌であった話。

JavaChampionも増えてるし、応援している人たちも増えてるよ!
世界ナンバーワン1200万人の開発者。前回は1000万人。

軽量化している(今までとは違う)
JavaEE8、JavaSE9

JDK変更について
MillingCoin、Jigsawリリースと順次反映されている。

リリースモデルについて
○現行リリースモデル
★新しいリリースモデル
<機能リリース>
○2年に一度(目標)。まず遅れるので、、、
★6ヶ月に一度

<更新リリース>
○3ヶ月ごと。メンテ用と限定的機能アップデート
★3ヶ月ごと

JDK8
→2018年9月まで。商用サポート 2025年3月まで。

OpenJDKとOracleJDKのソースコード管理
→今後は一本で管理していく。


Java商用サポートについては、常に注視しておいたほうがいい。他のソフトも同様だが。

新しいリリースモデルが遅延ばかりだと結局破綻してしまうので、追っかけしたいと思います。

来年の開催
2018.10.28〜

◾︎JDK9, Release Cadence & Future 
by 久保田 祐史さん (inc. JShell Demo by @bitter_fox) (@sugarlife)


久保田さんは難聴者とのこと。障害有無に関係なく立派ですね。
雑誌 WEB+DB

情報収集の仕方
追加機能については、JEPを見ることで分かる。
メジャーバージョンのマイグレーション時に注意すべき点はオラクルのマイグレーションガイドを参照する。

ざっくり知りたい方はこちら
↓↓↓↓

メリット
1、モジュール化(Jigsaw)
2、JShell
3、ライブラリ改善
4、セキュリティ強化
5、付属ツールの刷新
6、G1 GCやコンパイラなどの性能改善

上の3つが新機能。
デモしてくれました。

JavaのREPLツール
→Lisp、Phython
→教育分野ではREPLツールないと不人気になる。

Java9入れなくてもJShell試せる
https://tryjshell.org

補完機能が豊富
import簡単。Shift+iで候補出てくるので選択すればok!これは便利だわな。

フェイルセーフ
→NPE(NullPointerException、IAE。

StreamAPI強化
→Stream.Iterator for文的な使い方できる。

JavaSE18.3
→管理場所 JDK Project
→2018.3.20 リリース予定(Java9から半年後)

ローカル変数の型推論が実装されることで、
頭でクラス名を書く必要なく、すべて
var A
var B
みたいに書ける。

◾︎Intel's Persistent Memory 
by 吉田 真也さん(@bitter_fox)

立命館大学 大学院2回
OpenJDKコミッター

Persistent Memory知ってる人??
→知らん、、、

最近アナウンスされた、新しいタイプのメモリ。安くて良いもの。大容量メモリ。
面白いのは、電源切れても内容が保持される!今までのメモリ概念を覆す。来年リリース?!

オラクルがIntelを意識している。

どれくらい改善される?割愛。
レスポンスタイムの改善。

今後10、20年後を見据えるキーワードになるのでは?!

IntelがJavaに力入れている。

◾︎Java EE 8 
by 西川 彰広さん (日本オラクル)

①JavaEE8
9.21リリース
GitHubに移管されました。
Glassfish5.0

WebLogic Server来年次期バージョンのリリース予定。

②EE4J(Eclipse Enterprise for Java)
Open、Evolving、Nimble(より速く動く?!)、Scalable

JavaEE
現代にあわせて成長。追随できる仕組み必要。JavaEEをEclipseファンデーションへの移管する。

EE4J→移管プロジェクトの名前です。

なぜ移管したの?!
メリットは、要はテクノロジーへの追随を実現するための移管である。
Open→OracleはJavaスペックリードする立場から降りる。スポンサーはEclipseファンデーション。


Compatible→移管はスポンサーシップも移管する。ドキュメントの資産はOracle所有という扱い。

Flexible→メモできなかった、、、
Nimble→クイックで早く。

EE4Jとは?
→FAQに詳しくあります。

ではオラクルはJavaEE7とかはどのようにサポートしていくの?
既存契約は継続。
既存(〜9/12)は継続。

MVC1.0とかはEE4Jで扱う。

@EclipseEE4J サブスクライブ

◾︎Microservices Topic & Approach 
by 森下 大介さん(ヤフー株式会社)

参加したセッション等。

システムにあわせて、組織や文化も変化していった。
コンウェイの法則
→組織のコミュニケーション構造がシステムに反映
Autonomy(自主・自立性)
→スクワッド(分隊)と呼ぶチームにメンバーが所属。一人一人が考え、どのように開発するかを検討議論し決めていく。

マイクロサービスを取り巻く仕組みについて
キーワード
→コンテナ、オーケストレーション
フォールトトレラント
→一部のエラーで全体が影響でないようにする

議論の対象が変化
フレームワークやライブラリは自前開発するものではない。サービスという部品をどう協調動作させるかがポイント。
同期<非同期





2017年9月28日木曜日

Java アノテーションについて

知りたいこと
①概要
②メリット、デメリット
③学習コスト
④参考サイト

---------------------------------
①概要
アノテーションとは?
アノテーションとは元々、注釈、注記といった意味を表す英語です。プログラミング用語でも、注意書きを追加する機能になり余白に文字を追加する機能、とのこと。

そして、アノテーションには3種類あります。
・名前だけでデータのないマーカー 
例:@Override
・データをひとつ持つ単一アノテーション
・複数のデータをもつフルアノテーション

②メリット、デメリット
メリット
これを記述した場合、その場所では指定した規則に従う必要があるので、例えばスペルミスやバグの発生を防止することになり便利なんです。

デメリット
・近年Java フレームワークではよくアノテーションが使われているが、(何事もそうだが)意図や標準をきちんとつくって展開していくことが大切である。、とまだ自分もそこまで使いこなせていないので何とも、、、というのが本音。^_^

③学習コスト
技術要素をあげるときりがないので、アノテーションに限らずJava 標準のテクノロジーをさわって一つ一つ自分のものにしていくしかないと思われる。

④参考サイト

【Java入門】アノテーションの使い方と作成する方法




2017年9月19日火曜日

git cloneコマンド実行で利用する通信プロトコルについて

①git cloneコマンドについて

いまさら聞けないgitの使い方http://qiita.com/mountcedar/items/682743c95fd3b8fc274b

②使用する通信プロトコル

Git サーバー - プロトコル

https://git-scm.com/book/ja/v1/Git-サーバー-プロトコル