· Convolutional Neural Network【neutral:中立的副硅、非顏色的; convolution: 回旋靠欢、盤旋 】 卷積神經(jīng)網(wǎng)絡(CNN || ConvNet) a type of feedforward artificial neural network(前饋人工神經(jīng)網(wǎng)絡)
·Recurrent Neural Network: 【recurrent: 經(jīng)常發(fā)生的,周期性的】循環(huán)神經(jīng)網(wǎng)絡
·Generative Adversarial Network: 【generative: 能生產(chǎn)的荆烈,有生產(chǎn)力的先煎;adversarial:敵手的践叠,對手的】生成對抗網(wǎng)絡
全部課程包含了 五個項目,分別:
Project 1: Your First Neural Network: Build a simple network to make predictions of bike sharing usage.
Project 2: Object Recognition: Build a neural network that detects objects from images.
Project 3: Generate TV Scripts: Use deep learning to generate new scripts for your favorite TV show.
Project 4: Make a Translation Chatbot: Build a chatbot that translates text in real time.
Project 5: Generate Faces: Use a generative adversarial network(GAN) to generate novel faces【novel: 新奇的膊存、異常的导而;小說】
Prerequisites
數(shù)學:You can brush up on most of the math prerequisites ?at Khan Academy.
Intermediate Python experience:?這里有udacity的python課程
最好有:?Multivariable Calculs?(多元微積分)和?Linear Algebra?(線性代數(shù))
==> 數(shù)學不會阻止你做項目忱叭,但是 It is encouraged for a theoretical understanding.
**這個課程是有Deadline的!**
The First week
? ? ? ? ? 1今艺、REGRESSION MODELS: Scikit-Learn
? ? ? ? ? 2韵丑、INTRO TO NEURAL NETWORKS: Perceptrons(感知單元) ?&& ?Train Networks
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Perceptrons: The simplest form of a neural network?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Train Networks: two ways, 1. gradient descent: 梯度下降, improve themselves based on the accuracy of their prediction; 2. back propagation: 反向傳播, improve individual parameters.
? ? ? ? ? 3、YOUR FIRST NEURAL NETWORK: Numpy (擴充庫虚缎,緯度數(shù)組&矩陣運算&數(shù)學函數(shù)函式庫)
Terminology:
Scikit-learn: An extremely popular Machine Learning library for python.
Perceptrons: The simplest form of a neural network.
Gradient descent: A process by which Machine Learning algorithms learn to improve themselves based on the accuracy of their predictions. You`ll learn more about this in upcoming lessons.
Backpropagation(How the backpropagation algorithm works): The process by which neural networks learn how to improve individual parameters. You`ll learn all about this in the upcoming lessons.(反向傳播撵彻,propagation:繁殖、增殖遥巴;宣傳千康、波及)
Numpy: An extremely popular library for scientific computing in python.
Tensorflow: One of the most popular python libraries for creating neural networks. It is maintained by Google.
Introduction To Anaconda And Jupyter
If you haven`t used Numpy, Pandas, or Matplotlib before, please take our?Intro to Data Analysis(數(shù)據(jù)分析入門: 使用NumPy和Pandas進行數(shù)據(jù)分析), These are the main tools for working with and visualizing data in Python, so you`ll need some experience with them.
Anaconda
Anaconda is a distribution of packages built for data science. It comes with conda, a package and environment manager. ?Using Anaconda will make your life working with data much more pleasant.
You`ll also use it to create virtual environments that make working on multiple projects much less mind-twisting. Package managers are used to install libraries and other software on your computer.
pip: default package manager for Python libraries. You can (and will) still use pip alongside conda to install packages.
Conda installs precompiled packages. For example: the Anaconda distribution comes with Numpy, Scipy and Scikit-learn compiled with MKL library(MKL Optimiations), speeding up various math operations.
Along with managing packages, Conda is also a virtual environment manager. it`s similar to virtualenv and pyenv, other popular environment managers.
pip export the list of packages in an environment to a file. allows other people to easily load all the dependencies for your code. pip freeze > requirements.txt
安裝與使用Anaconda
1铲掐、安裝之后需要進行全面更新 prevent future errors from out of date software. conda upgrade conda ?|| ?conda upgrade --all
Troubleshooting
If you are seeing the following "conda command not found" and are using ZShell, you have to do the following:?
? ?Add export PATH="/Users/username/anaconda/bin:$PATH" to your .zsh_config file.
Managing Packages
conda install package_name ==> ?conda install numpy || conda install numpy scipy pandas ?|| ?conda install numpy=1.10
有一種情況拾弃,scipy 依賴于numpy, 所以同時安裝 scipy 和 numpy ?有兩種方式:只安裝scipy(conda會自動安裝numpy),同時安裝scipy摆霉、numpy豪椿。
卸載:conda remove package_name.
更新: conda update package_name ?或 ?conda update --all
查看列表: conda list.
搜索:conda search search_term? ex: conda search beautifulsoup? (besutiful soup 是爬蟲利器)
Managing environments
創(chuàng)建環(huán)境,分離你的項目: conda create -n env_name list of packages, -n env_name
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ex --> conda create -n py3 python=3 or conda create -n py2 python=2 : ?These commands will install the most recent version of Python3 and 2, respectively, use python=3.3 to install specific version.?
Entering an environment?
? ? ? ?OSX/Linux: source activate my_env ? ?—— ?source deactivate
? ? ? ?Windows: activate my_env? ? ?—— deactivate
Saving and loading environments
sharing environments so others can install all the packages used in your code.
conda env export > environment.yaml? ?not using conda => pip freeze (requirements.txt)
then => ?conda env create -f environment.yaml?
check the env list: ?conda env list .
remove env: ?conda env remove -n env_name
YAML
is a human friendly data serialization standard for all programming languages.
一種直觀的能夠被電腦識別的數(shù)據(jù)序列化格式携栋,以數(shù)據(jù)為中心搭盾,一種可讀性高,并且容易被人類閱讀婉支、容易與驕傲本語言交互鸯隅,用來表達資料序列的編程語言
It works great for non-data related projects too like web apps with Flask.
The author have an environment for his personal blog using Pelican.
Want learn More? about conda and how it fits in the Python ecosystem, check Conda myths and misconceptions. And the conda documentation.
Last Note for students in the Data Analyst Nanodegree program.
Currently, most of the materials for this Nanodegree program are still guaranteed to work only for Python 2.7, You can quickly set up an environment for the current DAND(Data Analyst Nanodegree program) program by opening the Resources tab and downloading an appropriate YAML file.??
后期需要補數(shù)據(jù)分析的課程:
? ? ? ? ? ?數(shù)據(jù)分析
? ? ? ? ? ? ? ? 1.提出問題
? ? ? ? ? ? ? ? 2.整理數(shù)據(jù):可以用來解決問題的格式
? ? ? ? ? ? ? ? 3.探索數(shù)據(jù):找出數(shù)據(jù)中的模式,建立關于數(shù)據(jù)的直覺
? ? ? ? ? ? ? ? 4.得出結論或進行預測
? ? ? ? ? ? ? ? 5.數(shù)據(jù)類型:一維數(shù)據(jù)&二維數(shù)據(jù)
?