## AI, Machine Learning, and Deep Neural Networks

### Learning, Understanding and Implementing ML and related Math using either Python or C++

As with all CppMSG sub-groups, all attendees are experienced programmers, or near completion of they study of programming.

In addition to being programmers, all members are **very comfortable with mathematics** such as high school or college level Geometry, Algebra and Calculus.

All members know, **or are willing to learn** some under-grad * linear algebra, probability *and

*. You are also willing to upgrade your basic college math skills (as may be needed) in Geometry, Algebra, and Calculus using college level textbooks. See our Mathematics Supporting AI page.*

**statistics**### Meetings

- We meet physically in person at varying location in Austin, TX.
- RSVP for our physical meetings at: http://meetup.com/cppmsg_ai .

- We may also meet via online-only meetings, some of which are posted on meetup. Other online meetings are only announced via 'Group Communications'. See below.
- For digital communication during meetings see "Group Communication" below.
- NOTE: please read the Protocols and Rules page.
- Additional rule for this AI subgroup: You must have read and viewed the relevant material from the
*recommended resources*to participate, but if not you may attend and observe*silently*.

### Group Communication

- We use Gitter.im for text communication, which is like Slack, except they don't purge/delete your messages.
- Join our '
*general*' discussion '**room**' called the 'L**obby**' by gitter here: - Note that there are other relevant AI/ML '
**rooms**' within the '**community**' which you should join. - Get the full story on how we communicate as a group here: Chat, Networking & Communication Resources

### Note:

We are serious learners/students and mentors/teachers, moving forward systematically to greater knowledge and understanding. We show dedication to self study, and when we are able, we attending meetings. Please read the Protocols and Rules page.

### Primary Study Resources

We recommend for purchase & study the following machine learning *training packages*. Priority will be given to questions from them.

*Learning from Data: A Short Course*- http://amlbook.com/
- Consists of a book, website and video series.
- Website has supplements, updates, errata and resources.
- Available on edX.org:
- CaltechX: CS1156x Learning From Data (introductory Machine Learning course)
- If you are taking this course please join at least these websites for specific meeting announcements and discussion:
- https://gitter.im/machinelearning_ai/Lobby
- Please announce yourself as taking the course on this chat site.

- https://www.meetup.com/cppmsg2
- Please RSVP yes for online or in-person events you plan on attending and mention that you are taking the class.

- Note: CppMSG.com is not affiliated with edX or Caltech or any other grouping.

- https://gitter.im/machinelearning_ai/Lobby

*An Introduction to Probability Theory and Its Applications*: Volume 1, Third (3rd) Edition, July 1967 / 1968 - NOT Prior Editions.- by William Feller
- Better to get the "revised printing of 1970" of Volume 1, Third Edition. It probably has the same number of pages as the non-revised, so that is not a way to differentiate between them. It does say "Revised Printing" on the title page, under "THIRD EDITION". It also has an extra preface dated Jan. 1970.
- Very good book. For example, a whole chapter just on the sample space (to get it right!).

*Coding The Matrix: Linear Algebra Through Computer Science Applications*- http://codingthematrix.com
- Consists of a book, website and video series.
- Website has supplements, updates, errata and resources.
- In fact, this book is a linear algebra book for computer programmers, this math is relevant.
- Some of the examples and exercises are forms of machine learning which made it eligible to be one of our machine learning resources.

3. *Deep Learning* (Adaptive Computation and Machine Learning series) Hardcover – November 18, 2016

- by Ian Goodfellow (Author), Yoshua Bengio (Author), Aaron Courville
- Freely available and authorized PDF files are available for printing.

4. This is an amazon list of books that might be helpful, but may not yet have the status of "recommended" instead the are "optional" : http://a.co/ab89KmD

We use various tools on our own, but general programming questions are out of scope:

- Python 3
- Questions on Python in general are out of scope, however questions on python, as it relates to machine learning, are in scope. Relevant introductory python is covered by some of our machine learning study materials. All questions from our machine learning study materials are in scope including any python that they may contain.

- Jupyter
- Helps run python.

- Anaconda
- Helps install and run python and jupyter.

- Scikit-learn
- Machine Learning in Python
- Simple and efficient tools for data mining and data analysis
- Accessible to everybody, and reusable in various contexts
- Built on NumPy, SciPy, and matplotlib
- Open source, commercially usable - BSD license

- Machine Learning in Python
- Keras
- Deep Learning library for Theano and TensorFlow
- Keras is a high-level neural networks API, written in Python and capable of running on top of either TensorFlow or Theano. It was developed with a focus on enabling fast experimentation.
*Being able to go from idea to result with the least possible delay is key to doing good research.* - Use Keras if you need a deep learning library that:
- Allows for easy and fast prototyping (through user friendliness, modularity, and extensibility).
- Supports both convolutional networks and recurrent networks, as well as combinations of the two.
- Runs seamlessly on CPU and GPU.

- Keras is a high-level neural networks API, written in Python and capable of running on top of either TensorFlow or Theano. It was developed with a focus on enabling fast experimentation.

- Deep Learning library for Theano and TensorFlow
- TensorFlow™
- an open source software library for numerical computation using data flow graphs. Nodes in the graph represent mathematical operations, while the graph edges represent the multidimensional data arrays (tensors) communicated between them. The flexible architecture allows you to deploy computation to one or more CPUs or GPUs in a desktop, server, or mobile device with a single API. TensorFlow was originally developed by researchers and engineers working on the Google Brain Team within Google's Machine Intelligence research organization for the purposes of conducting machine learning and deep neural networks research, but the system is general enough to be applicable in a wide variety of other domains as well.

Here is an incomplete list of other optional available libraries and tools:

- GraphLab/Turi/MXnet ???
- Tensorflow (written in C++)
- Octave (incomplete, but good, MatLab opensource clone)
- Sage (free?, another MatLab replacement)
- http://DMLC.ml
- MXNet - Flexible and Efficient Deep Learning Library on Heterogeneous Distributed Systems. Lightweight, Portable, Flexible Distributed/Mobile Deep Learning with Dynamic, Mutation-aware Dataflow Dep Scheduler; for Python, R, Julia, Go, and more
- XGBoost eXtreme Gradient Boosting (GBDT, GBRT or GBM) Library for large-scale and distributed machine learning, on single node, hadoop yarn and more. General purpose gradient boosting library, including generalized linear model and gradient boosted decision trees.
- MinPy - The NumPy interface upon MXNet’s backend.
- DMLC-core (Distributed Machine Learning in C++ )

- C++ (such questions are out of scope and should be directed to our C++ sub-group).

# Online and Editable Reference Information

Wow, we can view, pop out the window and view it full screen, and registered users can even edit. Nice!