機械学習に関するAdam Geitgeyのブログに出会ってからずっと、ニューラルネットワークを理解しようと努めてきました。私はできる限り多くのことを読んで(把握できる)、幅広い概念といくつかの仕組み(数学は非常に弱いにもかかわらず)、ニューロン、シナプス、重み、コスト関数、逆伝播を理解していると信じていますしかし、実際の問題をニューラルネットワークソリューションに変換する方法を理解することはできませんでした。
ポイントのケースは、アダムGeitgeyは、使用例、を含むデータセット所与住宅価格予測システムとして与える寝室の特許、スクエアを。フィート、近隣、および販売価格では、ニューラルネットワークをトレーニングして家の価格を予測できます。ただし、コードで可能なソリューションを実際に実装するまでには至っていません。例として、彼に最も近いのは、重みを実装する方法を示す基本的な関数です。
def estimate_house_sales_price(num_of_bedrooms, sqft, neighborhood):
price = 0
# a little pinch of this
price += num_of_bedrooms * 1.0
# and a big pinch of that
price += sqft * 1.0
# maybe a handful of this
price += neighborhood * 1.0
# and finally, just a little extra salt for good measure
price += 1.0
return price
他のリソースは数学に重点を置いているようで、理解できる唯一の基本的なコード例(つまり、すべてが歌うわけではなく、すべてが踊るイメージ分類コードベース)は、ニューラルネットワークをXORにトレーニングする実装です1と0のみを扱うゲート。
ですから、私の橋渡しができないように見えるというギャップがあります。住宅価格予測問題に戻ると、ニューラルネットワークへのフィードにどのようにデータを適合させることができるでしょうか。例えば:
- ベッドルーム数:3
- 平方 フィート:2000
- エリア:ノーマルタウン
- セール価格:$ 250,000
3と2000は数値なので、ニューラルネットワークに直接フィードできますか?または、それらを別のものに変換する必要がありますか?同様に、Normaltownの値、つまり文字列についてはどうですか。ニューラルネットワークが理解できる値に変換するにはどうすればよいでしょうか。データ全体で一貫している限り、インデックスのような数値を選択できますか?
私が見たほとんどのニューラルネットワークの例では、レイヤー間を通過する数値は0から1または-1から1のいずれかです。処理の最後に、出力値を$ 185,000などの使用可能な値に変換するにはどうすればよいですか。
住宅価格予測の例は、3つのデータポイントに大幅に簡略化されているため、おそらく特に有用な問題ではありません。しかし、私はこのハードルを乗り越えて、疑似現実のデータを使用してトレーニングし、疑似現実の答えを吐き出す非常に基本的なアプリを書くことができれば、私はそれを後退させてキックできると思うだけです機械学習についてさらに掘り下げます。