作って試そう! ディープラーニング工作室:
パープレキシティーと呼ばれる指標を用いて、どのくらいの精度で文を生成できるかを確認した後、ドロップアウトと呼ばれる手法で過学習状態を回避してみましょう。
解決!Python:
Pythonに組み込みのround関数による数値の丸め方とその注意点、Decimalクラス(10進実数)を使った数値の四捨五入のやり方を紹介する。
解決!Python:
Pythonでは条件式を使うことで、単一の式として条件分岐を記述できる。if文を簡潔に記述したり、式しか書けないところで条件分岐したりするために条件式を使える。
解決!Python:
正規表現を使って、文字列から特定の文字より後ろを抽出するときには、抽出したいパターンをかっこ「()」でグルーピングしておくとよい。
作って試そう! ディープラーニング工作室:
RNNを組み込んだニューラルネットワークを定義して、そこに分かち書きされたテキストから作成したデータを入力して学習を行い、文章がうまく生成されるかを見てみます。
解決!Python:
文字列が提供する各種メソッドを使って、指定した文字(文字列)の前後を抽出する方法を紹介。正規表現を使うシンプルな例も取り上げる。
作って試そう! ディープラーニング工作室:
青空文庫から取得した小説データのインデックスへの変換、インデックスのベクトル化、RNNへの入力など、文章生成の準備と全体の流れを確認します。
解決!Python:
文字列から特定の文字で囲まれている部分を抽出するには「開き文字」「囲まれている部分」「閉じ文字」というパターンに注目して正規表現を組み立てるとよい。
解決!Python:
Pythonの正規表現モジュールが提供する関数を使って、文字列から数字だけを抽出する方法を紹介する。
解決!Python:
Pythonの正規表現モジュール(re)が提供するre.search/re.match関数を使って、文字列からパターンにマッチした部分を抽出する方法を紹介する。re.Matchオブジェクトも簡単に取り上げる。
解決!Python:
Pythonの正規表現モジュール(re)が提供するre.findall関数を使って、文字列からパターンにマッチした部分を抽出する方法を紹介する。同様な処理を行うre.finditer関数も取り上げる。
解決!Python:
Pythonで文字列から部分文字列を抽出する幾つかの方法の中から、基本的といえるインデックス指定やスライス指定を行う方法を紹介する。
解決!Python:
isalnumメソッドとisasciiメソッドと組み合わせて、あるいは正規表現を使って文字列が半角英数字のみで構成されているかどうかを調べる方法を紹介する。
人気連載まとめ読み! @IT eBook(76):
人気過去連載を電子書籍化して無料ダウンロード提供する@IT eBookシリーズ。第76弾では「作って試そう! ディープラーニング工作室」の第10回までをまとめました。自分でコードを書いたり、実行したりしながら機械学習やディープラーニングの基本的な考え方を理解していきましょう。
作って試そう! ディープラーニング工作室:
青空文庫から取得した梶井基次郎の著作データをMeCabで分かち書きしたものを基に、マルコフ連鎖と呼ばれる手法を用いて文を生成してみます。
解決!Python:
正規表現を扱うためのreモジュールのfullmatch関数などを使用して、文字列が数字だけで構成されているかどうかを判定する方法を紹介する。
解決!Python:
isdecimalメソッドを使って、文字列が数字だけで構成されているかどうかを判定する方法を紹介。isdigit/isnumericメソッドとの違いも取り上げる。
解決!Python:
文字列の値を数値に変換する前に、それが変換できるかを調べる必要がある。例外を使ってこれを調べる方法と正規表現を使う方法の2つを紹介する。
作って試そう! ディープラーニング工作室:
形態素解析エンジン「MeCab」をGoogle Colab上にインストールして、簡単なテキストを解析したり、分かち書きをしたりできるようにしてみる。
解決!Python:
文字列のisalphaメソッドを使うとそれが英字のみで構成されているかどうかを調べられる。その使い方と注意点、正規表現を使って同様な処理を行う方法を紹介する。
作って試そう! ディープラーニング工作室:
機械学習を使って文章の自動生成を行う準備として、青空文庫から小説のデータを取得して、本文のテキストを1文ずつリストに格納してみましょう。
解決!Python:
Pythonには文字列の内容を中央/左/右にそろえたり、0埋めを行ったりするためのメソッドがある。それらの使い方を紹介する。
解決!Python:
文字列が持つ各種メソッドやreモジュールのsub関数を使って、文字列内にある特定の文字列を削除する方法を紹介する。
解決!Python:
Pythonには文字列中の大文字/小文字を変換するための便利なメソッドがある。それらの使い方を紹介する。
解決!Python:
文字列中の特定の部分文字列や特定の文字を、replace/translateメソッドを使って別の文字列や文字に変換する方法を紹介。タブ文字を空白文字に展開する方法も取り上げる。
解決!Python:
文字列に特定の部分文字列が含まれているか、そのインデックスはどこか、何個含まれているかなどを調べる方法を紹介する。
解決!Python:
Pythonに組み込みのint関数やfloat関数を使って文字列を数値に、逆にstr関数などを使って数値を文字列に変換する方法を紹介する。
解決!Python:
Pythonのリスト(配列)の初期化、要素へのアクセス、要素の追加、要素の削除、要素の検索、要素の並べ替えを行う方法を1ページにまとめて紹介する。
解決!Python:
sortメソッドやsorted関数でリスト(配列)の要素をソートしたり、reverseメソッドやreversed関数で要素を逆順に並べたりする方法を紹介する。
解決!Python:
リスト(配列)に特定の値が含まれているか含まれていないか、特定の値が何個含まれているか、特定の値がどこにあるか、最大値と最小値は何かを検索するための方法を紹介する。
解決!Python:
インデックスやスライス、各種のメソッドを使用してリストから要素を削除する方法を紹介する。
解決!Python:
各種の演算子/メソッドを使って、リストの末尾に要素を追加したり、リスト内の指定した位置に要素を挿入したりする方法を紹介する。
解決!Python:
インデックスやスライスを使って、リスト(配列)の要素を取得、削除、変更する方法を紹介する。
解決!Python:
Pythonでは配列は「リスト」というデータ構造として実装されている。list関数やリスト内包表記などを使って、これを初期化する方法をまとめて紹介する。
作って試そう! ディープラーニング工作室:
前回に作成したDCGANと同様な構造のニューラルネットワークモデルで学習をしながら、識別器が算出する値と損失関数の関係などについて考えてみましょう。
解決!Python:
range関数を使って連番や特定の初期値/最終値/差分で計算される等差数列を得る方法、for文との組み合わせ例、rangeオブジェクトなどについて説明する。
解決!Python:
結合演算子/累算代入演算子/文字列のjoinメソッドを使って、複数の文字列を結合(連結)する方法を紹介。文字列以外を要素とするリストの要素を文字列として結合する方法も取り上げる。
作って試そう! ディープラーニング工作室:
PyTorchが提供するConv2dクラスとConvTranspose2dクラスを使ってDCGANを実装しながら、その特徴を見ていきましょう。
解決!Python:
splitメソッドを使って文字列を空白文字や特定の文字列を区切りとして複数の文字列へと分割する方法を見ていく。似た処理を行うrstripメソッドとstliplinesメソッドも紹介。
Python最新情報キャッチアップ:
Python 3.9で行われたデコレーター式の記述時の制約緩和、新しいパーサーが採用された理由などについて見ていこう。
Python最新情報キャッチアップ:
Python 3.9の新機能や変更点の中から、辞書に対する和集合演算子の追加、文字列からプリフィックスとサフィックスを削除するメソッドの追加などを紹介する。
作って試そう! ディープラーニング工作室:
GANの基本的な構成を見た後に、PyTorchのLinearクラスでMNISTを対象としたGANを実装してみましょう。
解決!Python:
print関数を使って変数などの値を表示する方法と、その際に区切り文字や行末の改行を変更する方法、文字列と変数の値を組み合わせる方法などを紹介する。
解決!Python:
for文で処理を繰り返し実行する際の典型的なコード例を紹介。range関数、enumerate関数、zip関数、break文とcontinue文についても触れる。
作って試そう! ディープラーニング工作室:
オートエンコーダーの活用例の一つである異常検知を、MNISTの手書き数字を例に体験してみましょう。
解決!Python:
文字列やリストの要素数(長さ)を得るには組み込みのlen関数を使用する。if文やfor文で、len関数を使って要素数を調べなくてもよい場合についても説明。
作って試そう! ディープラーニング工作室:
GPUを使えるようにGoogle Colabを設定し、PyTorchからGPUを使って畳み込みオートエンコーダーの学習を高速化してみましょう。
解決!Python:
Pythonで数値を0埋めして文字列化するには、f文字列、formatメソッド、format関数、%演算子などの方法がある。
作って試そう! ディープラーニング工作室:
PyTorchが提供するConv2dクラスとConvTranspose2dクラスを利用して、畳み込みオートエンコーダーを作成してみましょう。