· Convolutional Neural Network【neutral:中立的、非顏色的; convolution: 回旋、盤旋 】 卷積神經網絡(CNN || ConvNet) a type of feedforward artificial neural network(前饋人工神經網絡)
·Recurrent Neural Network: 【recurrent: 經常發生的,周期性的】循環神經網絡
·Generative Adversarial Network: 【generative: 能生產的,有生產力的;adversarial:敵手的,對手的】生成對抗網絡
全部課程包含了 五個項目,分別:
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
數學:You can brush up on most of the math prerequisites ?at Khan Academy.
Intermediate Python experience:?這里有udacity的python課程
最好有:?Multivariable Calculs?(多元微積分)和?Linear Algebra?(線性代數)
==> 數學不會阻止你做項目,但是 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 (擴充庫,緯度數組&矩陣運算&數學函數函式庫)
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(數據分析入門: 使用NumPy和Pandas進行數據分析), 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
創建環境,分離你的項目: 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.
一種直觀的能夠被電腦識別的數據序列化格式,以數據為中心,一種可讀性高,并且容易被人類閱讀、容易與驕傲本語言交互,用來表達資料序列的編程語言
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.??
后期需要補數據分析的課程:
? ? ? ? ? ?數據分析
? ? ? ? ? ? ? ? 1.提出問題
? ? ? ? ? ? ? ? 2.整理數據:可以用來解決問題的格式
? ? ? ? ? ? ? ? 3.探索數據:找出數據中的模式,建立關于數據的直覺
? ? ? ? ? ? ? ? 4.得出結論或進行預測
? ? ? ? ? ? ? ? 5.數據類型:一維數據&二維數據
?