しゃらら

勉強や活動のログと雑記がメインです。 Xcode / Swift / C++ / P…

しゃらら

勉強や活動のログと雑記がメインです。 Xcode / Swift / C++ / Python / データサイエンス / 推理小説 / ホラー小説 Twitter : https://twitter.com/ma_vp9

最近の記事

Pythonを用いた機械学習21日目

前回は、ニューラルネットワークの重みを誤差逆伝播で求めるプログラムを学んだ。今回は、モデル評価についてと練習問題にとり組む。 前回の内容はこちらからどうぞ。 *交差検証ニューラルネットワークの重みなどのパラメータを学習してテストデータでどれだけ良い結果がでても、実際に使おうとして正しい結果が得られないこともある。そこで、学習したデータと別のデータを使ってその精度を確認する(モデル評価)。 一般的に、与えられたデータを訓練用とテスト用に分けて、訓練用データで学習し、テスト

    • Pythonを用いた機械学習20日目

      前回は一次関数を使って誤差を小さくしていく方法(損失関数が最小になる重みを見つけること)を学んだ。今回はニューラルネットワークにおける誤差を小さくする方法について学習していく。 前回の内容はこちらからどうぞ。 *誤差逆伝播 ニューラルネットワークにおいて、入力と出力の間に中間層を挟み、それぞれの接続にバイアスを考慮する。入力があり、1ないし複数のニューロンを経て出力にいたる。そこに最適な重みを求めていく(順伝播)。これを逆方向に考え、求める出力から重みを決定していくこと

      • Pythonを用いた機械学習19日目

        今回は回帰分析について学ぶ。 前回の学習内容はこちらからどうぞ。 1.一次関数による予測例えば、データが一次関数に近いと仮定すると、求める関数はf(x)=ax+bとなる。 一般的なデータはきれいに一次関数に従うわけではなく、誤差が生じる。その誤差を最小にするため、「最小二乗法」をもちいる。 複数のa,bの組み合わせで、(y-f(x))^2を求め、その合計が0になることを理想として、なるべく小さい値をとるようなa,bを求めることが目標になる。 与えられた点をxk,yx

        • Pythonを用いた機械学習18日目

          第4章の関数と微分をいっきに学習していく。 1.関数関数には、一次関数、二次関数、指数関数や三角関数がある。これらに共通するのは、入力値を1つ決めると、出力が1つ決まること。 *y=2x+1という一次関数を実装したコード >>> def func(x):... return 2 * x + 1... >>> print(func(-2))-3>>> print(func(1))3 2.微分*hを0に近づけて微分係数の変化を見るコード >>> def f(x)

        Pythonを用いた機械学習21日目

          Pythonを用いた機械学習17日目

          行列と写像、連立方程式(①)、練習問題(逆行列を求める、連立方程式を解く②)を解いてみる。 1.行列と写像、連立方程式*線形写像・・・行列を掛ける操作のこと *連立方程式をプログラムで解くコード >>> import numpy as np>>> A = np.array([[2,3],[-1,4]])>>> B = np.array([7,2])>>> >>> print(np.linalg.inv(A) @ B)[2. 1.]​ 2.練習問題⑤以下の逆行列をPyt

          Pythonを用いた機械学習17日目

          Pythonを用いた機械学習16日目

          転置行列(①)と逆行列(②)について学んでいく。 前回の復習はこちらからどうぞ。 1.転置行列*転置行列(てんちぎょうれつ)・・・もとの行列の行と列を入れ替えた行列のこと。 転置行列をさらに転置すると、もとの行列にもどる。 対称行列 直交行列(以下のU)もとの行列と転置した行列を掛けると単位行列となる行列 2.逆行列行列Aに対して、右から掛けても左から掛けても単位行列Eになるような行列を、Aの逆行列といい、A^-1とあらわす。逆行列を求めるには、Aは正方行列である

          Pythonを用いた機械学習16日目

          Pythonを用いた機械学習15日目

          多次元のデータを扱う行列の足し算引き算(①)と、特徴的な掛け算(②)について学んでいく。 前回の内容はこちら。 0.行列の基礎*行と列・・・行列は、その要素の横方向を「行」、縦方向を「列」という。例えば、以下の行列Aは、2行3列の行列という。 *正方行列・・・行の数と列の数が同じ行列のこと。以下の行列Bは、2次の正方行列、行列Cは3次の正方行列という。 1.行列の足し算と引き算2つの行列の和や差は、同じ位置を足したり引いたりする。 例題)次の行列X,YのX+YとX-

          Pythonを用いた機械学習15日目

          Pythonで(ゲーム攻略のための)スコアを計算してみた

          今回はかんたんなメモです。今まで個人的にエクセルでちまちまと作っていた愛ゲーム用のスコア計算コードをPythonで実装する際に調べたこと(データの出力と入力)をまとめます。 ・データの出力Pythonで出力を行うときには、多くの言語と同じように、プリント文を使用する。また、数字の出力と文字列の出力を混ぜて行うときには、数字を文字列に変換し連結してあげること。 a = 12>>> >>> print(a)12>>> print("aは12です")aは12です>>> prin

          Pythonで(ゲーム攻略のための)スコアを計算してみた

          Pythonを用いた機械学習14日目

          前回からベクトルや行列について学習している。今回は、ベクトルの和と大きさ(①)、ベクトルの内積(②)について学んでいく。 前回の内容はこちらからどうぞ。 1.ベクトルの和と大きさベクトルの足し算は、各要素をそれぞれ足していくだけ。 例題)以下の2つのベクトルの和を求める 解答) ベクトルの大きさを表すときは、ベクトル記号の両端を「|」で囲う。ベクトルの大きさは三平方の定理で求められる。 *NumPyでベクトルの計算を実装するコード >>> import nump

          Pythonを用いた機械学習14日目

          Pythonを用いた機械学習13日目

          本日から、ベクトルや行列について学んでいく。大量のデータを扱う機械学習では、効率よく扱えるようデータ構造を工夫する必要がある。ここでは、ニューラルネットワークで使われるベクトルと行列の概要をとらえる。 前回の記事はこちらからどうぞ。 0.用語整理*スカラー・・・数値を表現するときに使う整数や小数などの大きさのみを表す量である。例)「2」「−1」「1.5」など *ベクトル(ベクター)・・・大きさと向きを持つ量である。高校の教科書ではアルファベットの上に矢印をつけて表現して

          Pythonを用いた機械学習13日目

          Pythonを用いた機械学習12日目

          本日は、練習問題(生徒のテストの点数という模擬データの偏差値を求める)(①)ことと、練習問題(パラメトリックな手法を使って、ランダムに生成した点が扇型に入っている割合を求める)(②)に取り組む。 前回の内容はこちらからどうぞ。 1.模擬データの偏差値を求める問題)学校でテストを実施したところ、20人の生徒の点数は以下のとおりになった。これらの生徒の偏差値を求めよ。 ヒント)偏差値は、平均50、標準偏差10である 解答例) >>> import numpy as np

          Pythonを用いた機械学習12日目

          Pythonを用いた機械学習11日目

          これまで機械学習に必要な数学の知識として、数列や確率について学んできた。今回は、大量のデータから標本を取り出すため乱数を生成したり、生成したデータが正規分布に従うのか確認したりしてみる。 前回の学習はこちらからどうぞ。 0.標本と推定*推測統計学・・・母集団の一部(標本)を使って、母集団の情報(平均や分散)を推測すること *点推定・・・標本平均を求めて、母平均も同じだとみなす考えかた *区間推定・・・母集団が「正規分布」と仮定できるような状況で用いられる *中心極限

          Pythonを用いた機械学習11日目

          iOSアプリ開発5日目〜その5〜

          ARKitを用いたARアプリ開発の続き。前回作成した「DetectPlane」のコードに、平面を検知したらラベルが表示されるように設定を追加していく。まずは、ラベルを定義し(①)、ラベルの設定とサブビューへの配置(②)、ラベルの動的設定(③)という順番で実装する。 前回の記事はこちらからどうぞ。 1.ラベルの定義(初期化)ビューを定義しているところ(18行目)に、プライベート定数を定義する。 private let label: UILabel = UILabe

          iOSアプリ開発5日目〜その5〜

          iOSアプリ開発5日目〜その4〜

          ARKitを用いたARアプリ開発の続き。平面を検知するコードを実装する。 今回は、ARKitのPlane Detection(水平の平面を検知)という機能を使う。垂直の平面検知は未実装である。3次元空間では、横方向のX、奥行き方向のY、縦方向のZを用いて位置を指定する。座標のポイントとポイントの距離を計測したり、ピタゴラスの定理を使ってiPhoneで写した物体の長さを計測したりする。平面を検知したら、平面の上に物体を配置することができる。何回な数学計算をしなくても自動で計測

          iOSアプリ開発5日目〜その4〜

          Pythonを用いた機械学習10日目

          早いもので、更新10回目を迎えた。まだまだ先は長いがこれからも続けていきたい。 前回まで3回にわけて、統計学の知識として「確率」について書いている。今回まではPythonコードは少しそばにおいて、今日はベイズの定理についてまとめる。 前回の記事はこちら。同時確率と条件付き確率について書いている。 1.ベイズの定理乗法定理におけるAとBを入れ替えると、以下の2つの式ができる。 左辺が等しいので、右辺同士を等式で考えることができる。 これを整理してP(A|B)を左辺に移

          Pythonを用いた機械学習10日目

          Pythonを用いた機械学習9日目

          機械学習を学ぶ上で欠かせない統計学の知識であるが、今日は前回に引き続き「確率」について学ぶ。同時確率と条件付き確率についてまとめる。 前回の記事はこちら。試行や事象、確率変数や期待値について書いている。 1.同時確率・「同時確率」・・・2つの事象AとBがあるとき、これらが同時に起こる確率のことであり、下記のように表す ・「A ∩ B」・・・事象A、Bの積事象という 例)2つのサイコロを同時に振ったとき、事象Aは「1つ目のサイコロで偶数がでる」、事象Bは「2つ目のサイコ

          Pythonを用いた機械学習9日目