どうやってAIを学習するか?

各学習法を吟味、自分に合った方法で進める。

Chainer チュートリアルへようこそ。

このチュートリアルは、機械学習やディープラーニングの仕組みや使い方を理解したい大学学部生以上の方に向けて書かれたオンライン学習資料です。

機械学習の勉強を進めるために必要な数学の知識から、Python というプログラミング言語を用いたコーディングの基本、機械学習・ディープラーニングの基礎的な理論、画像認識や自然言語処理などに機械学習を応用する方法に至るまで、幅広いトピックを解説しています。

機械学習を学び始めようとすると、ある程度、線形代数や確率統計といった数学の知識から、何らかのプログラミング言語が使えることなどが必要となってきます。 しかし、そういった数学やプログラミングの全てに精通していなければ機械学習について学び始められないかというと、必ずしもそうではありません。

本チュートリアルでは、機械学習やディープラーニングに興味を持った方が、まず必要になる最低限の数学とプログラミングの知識から学び始められるように、資料を充実させています。

そのため、できる限りこのサイト以外の教科書や資料を探さなくても、このサイトだけで機械学習・ディープラーニングに入門できることを目指して、作られています。初学者の方が「何から学び始めればいいのか」と迷うことなく学習を始められることを目指したサイトです。

また、本チュートリアルの特徴として、資料の中に登場するコードが、Google Colaboratory というサービスを利用することでそのままブラウザ上で実行できるようになっているという点があります。

ブラウザだけでコードを書き、実行して、結果を確認することができれば、説明に使われたサンプルコードを実行して結果を確かめるために、手元のコンピュータで環境構築を行う必要がなくなります。

とりあえずkeras

とりあえずkerasの本から始めました。

こいつです。

実装するだけならこんなに簡単なのか!っていうのでモチベ爆上がりしましたね。

この本のおかげで、何に何を入れたら何が出てくるぐらいは理解できました。

つまり、よくわかんないけど作れる。みたいな状態。

この本を(わからないところは飛ばし飛ばし)終えてからtensorflow公式のAIチュートリアルをやってました

あとは微分と積分がなんで重要なのかをちらっと勉強してました。

ただ、東大松尾研究室のDL4USの存在を知ってたそっちを受けてたかも(^^;

動画編

数学は動画で勉強。

TRYの動画授業。

YOUTUBEなので無料だしわかりやすい。

高校生向けになので初心に帰れるのも良い。

微分だけ学びました。

予備校のノリで学ぶシリーズ。

YOUTUBEなので無料。

確率統計、線形代数はここで学んだ。

ボケがおもしろくなくておもしろいので好き。

1.わからないところを理解する。

独学で一番まずいのが、なんかよくわからないからモチベ下がったってやつです。

モチベ下がるのは良くないので、なんでわからないのか、どこがわからないのか、というのを理解して対策を打ちましょう。

ワンもあ言います。「わからない理由を明確化する」、そして「対策を打つ」。

もう一回いいます。「なんで」わからないのか、どこがわからないのか、そして「対策」。

もう一度いいます。「原因」と、「対策」。

わかんなくて叫びだしたくなったら「原因」と「対策」っていうのを思い出してください。

原因を見つけるのは2ステップ。

「どこ」がわからないのか、どこからわからなくなったのかを調べる。

全体像

本講座は全7Lessonの演習マテリアルからなっています。各Lessonは次のような構成になっています。

– Lesson 0: 機械学習・Deep Learningのキソ

  – 機械学習概観

– Lesson 1: 手書き文字認識をしよう

  – Keras入門、MNIST、MLP、前処理、勾配に関するテクニック、過学習に関する手法、Fashion MNIST

– Lesson 2: 畳み込みニューラルネットワーク

  – CNN基礎、Data Augmentation、画像データの正規化、Batch Normalization、Skip Connection

– Lesson 3: 系列データで予測させてみよう

  – RNN、BPTT、Gradient Clipping、LSTM、GRU

– Lesson 4: ニューラル翻訳モデルをつくってみよう

  – 言語モデル、分散表現、Seq2Seq、Keras Functional API、Attention

– Lesson 5: 画像からキャプションを生成してみよう

  – MSCOCO、学習済みモデルの利用、キャプション生成、Attention

– Lesson 6: ニューラルネットに画像を生成させよう

  – 生成モデル入門、GAN、Conditional GAN、VAE

– Lesson 7: ニューラルネットでゲームを攻略するAIをつくろう

  – 強化学習入門、Q学習、DQN、OpenAI Gym、Double DQN、Dueling Network

演習の進め方

各LessonにはそのLessonで学ぶトピックの説明及びPythonでの実装がJupyter Notebook形式でまとめられています。 各Lessonは4つのSectionから構成されている。

(画像はネットより借用、文面もQiitaなどより借用)

↑人気ブログランキングに参加しています。ポチっと1票を!

引用

今日は今までに一度も使ったことがない「引用」を使用してみる!
間違ったらごめんなさい。

3−8.引用

役割 … 引用ブロックを挿入する
タグ … <blockquote>

引用	引用ボックスを挿入する

役割 … 引用ブロックを挿入する

タグ … <blockquote>

https://bazubu.com/how-to-use-gutenberg-36143.html

野性の証明カバー

↑人気ブログランキングに参加しています。ポチっと1票を!

複数のブロックを1つにまとめる?

地崎バラ園のバラ
  • 第1のブロックは画像の中を指定。
  • 第2のブロックはこのブロックで段落を指定。
  • これをテキストの範囲を指定する同じ要領で指定
  • どうなるか?

第1のブロックは画像の中を指定。
第2のブロックはこのブロックで段落を指定。
これをテキストの範囲を指定する同じ要領で指定。
どうなるか?

  • 段落1(段落4はインライン画像です)
  • 段落2
  • 段落3
  • 段落4 インライン画像用
  • 段落5
↑人気ブログランキングに参加しています。ポチっと1票を!

再利用可能・保存と呼び出し

再利用可能なカバー画像と人気ブログ・バナーを登録した。

野性の証明カバー

野性の証明カバー

海鮮丼(かに・いくら)
海鮮丼

上の画像はフルサイズを指定

↑人気ブログランキングに参加しています。ポチっと1票を!

Python-HTML-CSS with Enlighter in Gutenberg

19/11/26に掲載されたプログラム群をGutenbergとEnlighterを使って再掲します。

#!/usr/bin/python3      # app.py python
# -*- coding: utf-8 -*-
# app.py
 
from flask import Flask, redirect ,request,render_template
 
app = Flask(__name__)
 
@app.route("/check")
def check():
    return render_template('check.html')
 
@app.route('/',methods=['POST'])
def index():
    my_age = int(request.form["age"])
    my_name = request.form["name"]
    return render_template('index.html',age=my_age,name=my_name)
 
if __name__ == '__main__':
    app.run(debug=True)

上のコードはPython programです。

&lt;!DOCTYPE html>      &lt;!-- check.html -->
&lt;html lang="ja">
&lt;head>
    &lt;meta charset="UTF-8">
    &lt;title>年齢確認&lt;/title>
&lt;!--    &lt;link rel="stylesheet" type="text/css" href="{{url_for('static', filename='style.css')}}" />  -->
    &lt;link rel="stylesheet" type="text/css" href="static/css/style.css" />
&lt;/head>
&lt;body>
 
    &lt;form action="/" method="post">
        &lt;h1>年齢確認&lt;/h1>
        &lt;input type="text" name="name" placeholder="名前" required/>
        &lt;input type="number" name="age" placeholder="年齢" required/>
        &lt;button>年齢確認&lt;/button>
    &lt;/form>
 
&lt;/body>
&lt;/html>

上のプログラムはHTMLです。

&lt;!DOCTYPE html>  &lt;!-- index.html -->
&lt;html lang="ja">
    &lt;head>
        &lt;meta charset="UTF-8">
        &lt;title>18禁のサイト&lt;/title>
&lt;!--        &lt;link rel="stylesheet" type="text/css" href="style.css" />  -->
    &lt;link rel="stylesheet" type="text/css" href="static/css/style-04.css" />
        &lt;!--[if lt IE 9]>
        &lt;script src="http://html5shiv.googlecode.com/svn/trunk/html5.js">&lt;/script>
        &lt;![endif]-->
    &lt;/head>
    &lt;body>
    &lt;h1>射幸心を煽りまくるホームページ&lt;/h1>
    {% if age >= 18 %}
    {{name}}さんは18歳以上ですね。
    {% else %}
    {{name}}さんみたいな方はこんなHP見ちゃいけません?
    {% endif %}
 
    &lt;/body>
&lt;/html>

上のプログラムもHTMLです。

@charset 'utf-8';
body     {
    background: sandybrown;
    color: darkgreen;
    margin-left: 2m;
    margin-right: 2m;
}

上のコードはstyle.cssです。

@charset 'utf-8';
body     {
    background: violet;
    color: darkgreen;
    margin-left: 2m;
    margin-right: 2m;
}

上のコードはstyle-04.cssです。

文字が小さく見ずらい時はWindows拡大鏡をお使いください。Windows・キー + 「+」(プラス・キー)(Windows・キーはキーボード左下、左から3~4番目のキー。抜けるにはWindows・キー + 「ESCキー」を押します)

↑人気ブログランキングに参加しています。ポチっと1票を!

EnlighterでPython codeを表示

アイキャッチ画像は北大旧交流プラザ(エルムの森)です。

Plugin Enlighter Sourcecodeを初めて使う!

#!/usr/bin/python3
# -*- coding: utf-8 -*-
#demo32.py sessin managed &amp; username get
from flask import Flask, redirect, request, render_template, url_for, session
 
app = Flask(__name__)
 
@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        session['username'] = request.form['username']
        return redirect(url_for('index'))
    return render_template('demo07.html')
 
@app.route('/program', methods=['GET', 'POST'])
def program():
    if request.method == 'POST':
        session['username'] = request.form['username']
        return redirect(url_for('index'))
    return render_template('demo03.html')
 
@app.route('/program1', methods=['GET', 'POST'])
def program1():
    if request.method == 'POST':
        session['username'] = request.form['username']
        return redirect(url_for('index'))
    return render_template('demo04.html')
 
@app.route('/program2', methods=['GET', 'POST'])
def program2():
    if request.method == 'POST':
        session['username'] = request.form['username']
        return redirect(url_for('index'))
    return render_template('demo05.html')
 
@app.route('/param/&lt;parameter>')
def show_user_profile(parameter):
    if 'username' in session:
        html = render_template('demo07.html',name = str(parameter))        
        return html
    return 'You are not logged in. from param processing'
 
@app.route('/reset', methods=['GET', 'POST'])
def reset():
    session['username'] = 'monkey'
    return render_template('check31.html')
 
@app.route('/')
def func():
    if 'username' in session:
        html = render_template('demo07.html',name = str(session['username']))        
        return html
    return 'You are not logged in'
 
@app.route('/check', methods=['GET', 'POST'])
def check():
    if request.method == 'POST':
        session['username'] = request.form['username']
        return redirect(url_for('func'))
    return render_template('check31.html')
 
@app.route('/',methods=['POST'])
def index():
 
    if (request.form['attr'] == 'need'):
 
        success = False
        name = request.form["username"]
        passwd = request.form["pass"]
        att1 = request.form['attr']
        my_message = "keyword処理は?"
    else:
        con1 = request.arg.get('_ControlID')
        pg1 = int(request.arg.get('_PageID'))
        act1 = request.arg.get('_ActionID')
        flg1 = request.arg.get('getFlg')
        html = render_template('demo07.html', con = con1, pg = str(pg1), act = act1, flg = flg1)        
        return html
 
    user_data = [{"id":"カリフラワー", "pass":"hanakyabetsu"},{"id":"西行法師", "pass":"masako"},{"id":"monkey", "pass":"kayochan"},{"id":"program1", "pass":"pass1"}]
 
    for i in range(0, 10):
        if user_data[i]["id"] == name:
            if user_data[i]["pass"] == passwd:
                success = True
                session['username'] = name
                return render_template('demo07.html',suc=success,name=name,pas=passwd,msg=my_message,att=att1)
            else:
                continue
        else:
            continue
    success = False
    return render_template('demo07.html',suc=success,name=name,pas=passwd,msg=my_message,att=att1)
 
@app.route('/logout')
def logout():
    session.pop('username', None)
    return redirect(url_for('func'))
 
app.secret_key = 'B0Qp89i/2xY F~XHH!jnVVLWX/,%QR'
 
if __name__ == '__main__':
    app.run(debug=True)
  • EnlighterでPython codeを表示
    Code画面の右上
  • 左(+)Open Code in new Window
    新しいWindowが開かれ大きな文字で表示
  • 中(表)Toggle RAW Code
    Line番号の表示/非表示がトグルで
  • 右(E)EnlighterJS Syntax Highlighter
    省略
51行目うす肌色で2行分ハイライトしている
51行目うす肌色で2行分ハイライトしている

51行目うす肌色で2行分ハイライトしている。カーソルをそこへもって行くと、自動的に51行目が2行にわたっている旨ハイライトする。

↑人気ブログランキングに参加しています。ポチっと1票を!

固定ページではHighlight表示する

CodeMirror Blocks1.1.1,Gutenberg7.1.0,WP5.3の組み合わせで固定ページであるが色別表示(SyntaxHighlight)をした。

CodeMirror Blocks1.1.1,Gutenberg7.1.0,WP5.3の組み合わせで固定ページであるが色別表示(SyntaxHighlight)をした。GutenbergでもCodeMirror Blocksのバグでもなかった。この間変化したのは、LIQUID BLOCKSをインストールしただけ。固定ページはメニューの「トップページ」のプルダウンメニューの「CodeMirror Blocks実験」をクリックすると見ることができます。

固定ページでSyntaxHighlightしている様子
固定ページでSyntaxHighlightしている様子(ログアウト後・リドロウして後)

「コンピューター」→「ソフトウェア」 → 「言語」 → 「その他の言語」 → 「Python(Object指向)」でメニューをたどるとSyntaxHighlightされているのが分かる。

上のボタンをクリックするとHighlight表示されたページが見られます。

↑人気ブログランキングに参加しています。ポチっと1票を!

Gutenberg & LIQUID BLOCKS

カバー画像としてミカンの写真を使っています。オーバーレイの色は薄いブルーを使っています。

最近の何枚かの写真を使います。

5枚の写真をギャラリーとして使いました。

長兄からの贈り物

カバー画像としてミカンの写真を使っています。オーバーレイの色は薄いブルーを使っています。

音楽ファイルを挿入しています。ヘレンシャピロの「悲しき片思い」です。

↑当記事の作成に当たっては上のリンクの記事を参照しました。
LIQUID BLOCKSは無料
LIQUID PRESSは有料

函館塩ラーメン五稜郭の塩ラーメンといかめし

↑人気ブログランキングに参加しています。ポチっと1票を!

CodeMirror Blocksの構造解析

アイキャッチ画像は20日国分寺麻布茶房で行われた際のウェートレスによるプレッシャーのお茶出し。これにより講義は80分で切り上げた。店は混んでいたしこれは致しかたない。

<!-- /wp:codemirror-blocks/code-block -->

<!-- wp:codemirror-blocks/code-block {"lineNumbers":true} -->
<div class="wp-block-codemirror-blocks-code-block code-block"><pre>#!/usr/bin/python3
# -*- coding: utf-8 -*-
#demo32.py sessin managed &amp; username get
from flask import Flask, redirect, request, render_template, url_for, session
 
app = Flask(__name__)
 
@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        session['username'] = request.form['username']
        return redirect(url_for('index'))
    return render_template('demo07.html')


<!-- 中略 -->

@app.route('/logout')
def logout():
    session.pop('username', None)
    return redirect(url_for('func'))
 
app.secret_key = 'B0Qp89i/2xY F~XHH!jnVVLWX/,%QR'
 
if __name__ == '__main__':
    app.run(debug=True)</pre></div>
<!-- /wp:codemirror-blocks/code-block -->

<!-- wp:paragraph -->

プログラムの先頭部分と最後の部分<pre … </pre>でCodeが囲われている。

Line No無し
<!-- wp:codemirror-blocks/code-block -->
<div class="wp-block-codemirror-blocks-code-block code-block"><pre>#!/usr/bin/python3
# -*- coding: utf-8 -*-

Line番号が無しの場合は{“lineNumbers”:true}の指定がない。

<!-- wp:codemirror-blocks/code-block {"lineNumbers":true} -->
<div class="wp-block-codemirror-blocks-code-block code-block"><pre>#!/usr/bin/python3
# -*- coding: utf-8 -*-

Line番号がトゥルーになっている。

Line Wrapping無し
<!-- wp:codemirror-blocks/code-block {"lineNumbers":true,"lineWrapping":false} -->
<div class="wp-block-codemirror-blocks-code-block code-block"><pre>#!/usr/bin/python3
# -*- coding: utf-8 -*-

Line Wrapping無しの指定。

Editorable on frontend
<!-- wp:codemirror-blocks/code-block {"lineNumbers":true,"lineWrapping":false,"readOnly":true} -->
<div class="wp-block-codemirror-blocks-code-block code-block"><pre>#!/usr/bin/python3
# -*- coding: utf-8 -*-

Editorable on frontendを指定すると”readOnly”:trueになる。

上記指定による状況をプレビュー、ログオフで見ようと思ったが表示されなかった。

再びSyntaxHighlightその2

code Highlightしない件、ライン番号も表示されない。インデントはされる。

191215Editor内その1
191215Editor内その1

191215Editor内その1(まだ色表示されている-Line番号も表示されている)

191215Editor内その2
191215Editor内その2

191215Editor内その2(プレビューすると色が消えてしまった)

191215Editor内その3
191215Editor内その3

191215Editor内その3(再びプレビューすると色が復活)

191215Editor内その4
191215Editor外

191215Editor内その4(公開するとプレーンテキストになってしまう-Line番号も消えてしまう)

↑人気ブログランキングに参加しています。ポチっと1票を!