Introduction To Ai And Machine Learning With Go (Golang)
Published 9/2025
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 16.96 GB | Duration: 36h 1m
Published 9/2025
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 16.96 GB | Duration: 36h 1m
Learn the fundamentals of Artificial Intelligence and Machine Learning and apply them to your Go programs.
What you'll learn
Learn the basic principles of artificial intelligence
Learn AI search algorithms (BFS, DFS, GBFS, Dijkstra & A* Search)
Learn the basic principles behind machine learning
Learn about creating worlds with rules for artificial intelligence
Learn how to manage probability with artificial intelligence
Learn how to train a model using linear regression and multiple linear regression
Learn how to implement and use a neural network
Learn how to connect to and use remote models on services like Hugging Face
Learn how to integrate a Go application with LLMs like ChatGPT, and locally hosted LLMs
Requirements
A basic understanding of the Go programming knowledge
A basic understanding of the Python programming language
Ideally, a computer with a GPU (helpful, but not strictly necessary)
Description
Are you a Go developer ready to explore the exciting world of AI and machine learning? This course is your comprehensive guide, designed specifically for Gophers who want to add powerful AI skills to their toolkit. Much of the code in this course is written in Go, but some of it is written in Python, where it makes sense to do so, and this means that before taking this course you should have a basic understanding of both languages.We'll start with fundamental AI concepts, building a strong foundation with practical, hands-on projects. Then, we'll dive into the world of machine learning, tackling everything from classic regression models to modern neural networks. You'll learn how to leverage Go for high-performance AI applications, and discover how to integrate it with Python and cutting-edge tools like Hugging Face and LLMs for state-of-the-art solutions.What You'll LearnSearch Algorithms & Intelligent Agents: Master core AI search algorithms like A* and Dijkstra's by solving mazes and building a robot vacuum. Propositional Logic & Model Checking: knowledge based AI agents often need to make decisions based on available information in the world they operate in. Propositional logic and model checking are two different approaches to solving this problem.Uncertainty: Learn how AI agents handle randomness by creating a Battleship AI and a card-counting Blackjack player.Machine Learning Fundamentals: Get a practical understanding of linear regression by building models in both Python and Go to predict housing prices.Deep Learning & Neural Networks: Build a neural network from scratch for housing price prediction and a Convolutional Neural Network (CNN) for image classification.Natural Language Processing (NLP): Discover the power of NLP by creating an extractive summarization program in Go. You'll also learn to interface with external models from Hugging Face and harness the power of Large Language Models (LLMs) to create hybrid summarization systems.Large Language Models (LLMs): Learn how to connect your Go programs to Large Language Models like ChatGPT. We'll use a locally hosted LLM using Ollama, but the code we write will be 100% compatible with OpenAI, which is used to connect to most LLMs.Course RequirementsThis course is for intermediate to advanced Go developers. You should be comfortable with Go syntax and core concepts. A basic understanding of data structures like graphs and trees is also helpful, but not required. You should also have a basic understanding of Python.All you need is a computer running Windows, macOS, or Linux. While a GPU will speed up certain deep learning tasks, it is not essential; everything will run on a CPU.Why This Course?This isn't just another machine learning course; it's tailored for Go programmers. You'll learn how to build production-ready AI and machine learning applications that leverage Go's performance and concurrency. By the end, you'll have a portfolio of projects and the skills to confidently build your own intelligent applications.Ready to build the future of AI with Go? Enroll now and start your journey!
Overview
Section 1: Introduction
Lecture 1 Introduction
Lecture 2 A bit about me
Lecture 3 Installing Go
Lecture 4 Installing an IDE
Lecture 5 Setting up VS Code for Python
Section 2: Search and Artificial Intelligence Part I
Lecture 6 What we'll cover in this section
Lecture 7 Defining a maze
Lecture 8 Loading the maze from disk
Lecture 9 Uninformed Search
Lecture 10 Getting started with Depth First Search (DFS)
Lecture 11 Trying out our DFS algorithm
Lecture 12 Adding image output to our project
Lecture 13 Producing an animation of the maze solving process
Lecture 14 Implementing Breadth First Search (BFS)
Lecture 15 Implementing Dijkstra's Search
Lecture 16 Adding the Manhattan Cost to our generated images
Lecture 17 Informed Search
Lecture 18 Implementing Greedy Best First Search (GBFS)
Lecture 19 A* Search: an Overview
Lecture 20 Implementing A* Search
Lecture 21 Adding obstructions to our maze
Lecture 22 Calculating cost with obstructions
Lecture 23 Summary
Section 3: Search and Artificial Intelligence - Part II
Lecture 24 What we'll cover in this section
Lecture 25 Getting started with our robot vacuum
Lecture 26 Loading the Room configuration
Lecture 27 Getting started printing the room to the terminal
Lecture 28 Finishing up printing the room to the terminal
Lecture 29 Loading furniture and obstacles
Lecture 30 The Random Walk algorithm overview
Lecture 31 Setting up functions that every cleaning algorithm will need
Lecture 32 Implementing A* for the Random Walk algorithm
Lecture 33 Getting started with the Random Walk algorithm
Lecture 34 Bresenham's line algorithm and moving along a line until obstructed
Lecture 35 Finishing up the CleanRandomWalk function
Lecture 36 Trying out our code with CleanRandomWalk
Lecture 37 The SLAM algorithm
Lecture 38 Getting started with the SLAM algorithm
Lecture 39 Adding neighbors to the frontier
Lecture 40 Continuing with the SLAM algorith
Lecture 41 Adding a thorough frontier check and checking for sufficient coverage
Lecture 42 Finishing up and trying our SLAM algorithm
Lecture 43 The Spiral Algorithm
Lecture 44 Getting started with the Spiral algorithm
Lecture 45 Finding the room center and creating a spiral pattern
Lecture 46 Finishing up the Spiral alogorithm
Lecture 47 The Snaking (or Boustrophedon path) algorithm
Lecture 48 Getting started with the Snaking algorithm
Lecture 49 Finishing up the Snaking algorithm
Lecture 50 Adding obstacle recognition
Lecture 51 Complicating matters with a Cat
Lecture 52 Finishing up the Cat logic
Section 4: Knowledge Based Agents: Propositional Logic
Lecture 53 What we'll cover in this section
Lecture 54 Getting started with multiple rooms
Lecture 55 Getting the code working for multiple rooms, but without logic
Lecture 56 Defining our truth table and rules for propositional logic
Lecture 57 Getting started with our logical world
Lecture 58 Finishing up the methods for our logical world
Lecture 59 Getting started with our logic enabled robot
Lecture 60 Trying out our new logic aware robot and world
Lecture 61 Finishing up the propositional logic robot
Section 5: Knowledge Based Agents: Model Checking
Lecture 62 What we'll build in this section
Lecture 63 Getting started with our code
Lecture 64 Loading applicants from the CSV file
Lecture 65 Setting up the fairness property
Lecture 66 Setting up the risk property
Lecture 67 Finishing up our model checking logic and trying things out
Section 6: Artificial Intelligence and Uncertainty I
Lecture 68 What we'll cover in this section
Lecture 69 Getting started with our Battleship game
Lecture 70 Setting up the Human player
Lecture 71 Setting up the AI player
Lecture 72 Placing the AI player's ships
Lecture 73 Placing the Human player's ships
Lecture 74 Letting the Human player take a turn
Lecture 75 Getting started with letting the AI player take a turn
Lecture 76 Setting up huntModeBoosts
Lecture 77 Finishing up letting the AI player take a turn
Lecture 78 Displaying the heat map and trying things out
Lecture 79 Improving our heatmap functionality
Lecture 80 Sinking ships
Lecture 81 Trying out the finished game
Section 7: Artificial Intelligence and Uncertainty II
Lecture 82 What we'll cover in this section
Lecture 83 Getting started with our Blackjack game
Lecture 84 Clearing the screen, creating a deck of cards, and shuffling them
Lecture 85 The strategy our card counter will use
Lecture 86 Card counting abilties for our AI player
Lecture 87 Checking if the deck needs re-shuffled and creating players
Lecture 88 Dealing cards to all three players and calculating scores
Lecture 89 Displaying the players' hands
Lecture 90 Playing a round for the Human player
Lecture 91 Playing a round for the AI player
Lecture 92 Playing a round for the Dealer and trying things out
Section 8: Machine Learning in Python (supervised): Linear & Multiple Linear Regression
Lecture 93 What we'll cover in this section
Lecture 94 Getting started with our program: loading and pre-processing the data
Lecture 95 Prepare data for modeling, split data, and train the model
Lecture 96 Evaluating our model
Lecture 97 Print the results of our training to the console
Lecture 98 Display a visualization of the data
Lecture 99 Predict a house's price based on data outside our dataset
Lecture 100 Getting started with Multiple Linear Regression in Python
Lecture 101 Implement data processing capabilities
Lecture 102 Develop the model operations - Part I
Lecture 103 Develop the model operations - Part II
Lecture 104 Trying out the code we've written so far
Lecture 105 Visualization: Display Results
Lecture 106 Creating data for visualizations
Lecture 107 Creating a 2d visualization
Lecture 108 Creating a 3d visualization
Section 9: Machine Learning in Go (supervised): Linear & Multiple Linear Regression
Lecture 109 What we'll cover in this section
Lecture 110 Getting started with our program: parsing command line flags
Lecture 111 Setting up types, and loading and validating data
Lecture 112 Setting up the Linear Regression Type, and persisting model data
Lecture 113 Loading data and printing summary info
Lecture 114 Setting up a Model handler and trying out loading data
Lecture 115 Normalize Features
Lecture 116 Training the model
Lecture 117 Displaying trained model information
Lecture 118 Trying out training a model
Lecture 119 Saving and Loading a trained model
Lecture 120 Setting up a Predict method on the LinearRegression type
Lecture 121 Setting up the handlePrediction function
Lecture 122 Displaying Predictions
Lecture 123 Installing a sidecar application to create a visualization of the data (plot)
Lecture 124 Writing the Go code to call the sidecar application: Part I
Lecture 125 Writing the Go code to call the sidecar application: Part II
Lecture 126 Trying out our plotting functionality
Lecture 127 Updating our Python app to save to JSON format
Lecture 128 Loading a model trained in Python in our Go application
Section 10: Machine Learning: Neural Networks
Lecture 129 What we'll cover in this section
Lecture 130 Setting up a Python project for a Neural Network
Lecture 131 Loading and preprocessing our data
Lecture 132 Trying out loading data
Lecture 133 Setting up the rest of our command line flags
Lecture 134 Getting started with training our neural network
Lecture 135 Setting up the training loop
Lecture 136 Trying out the training loop
Lecture 137 Saving the trained model
Lecture 138 Loading a saved ONNX file and making predictions
Lecture 139 Trying out our prediction function
Lecture 140 Cats vs Dogs: Convolutional Neural Networks
Lecture 141 Getting started with our CNN
Lecture 142 Setting up GPUs, if available
Lecture 143 Getting started with training our model: loading data
Lecture 144 Defining our neural network
Lecture 145 Setting up the forward pass for our network
Lecture 146 Setting up the loss function, optimizer, and learning rate scheduler
Lecture 147 Setting up the train_model function
Lecture 148 Implementing early stopping
Lecture 149 Best model restoration
Lecture 150 Saving model state
Lecture 151 Setting up inference
Lecture 152 Trying things out
Section 11: Natural Language Processing: Extractive Summarization
Lecture 153 What we'll cover in this section
Lecture 154 Getting started with our text summarization package
Lecture 155 Setting up a simple application
Lecture 156 Getting started with the summarizer module
Lecture 157 Configuring our summarizer
Lecture 158 Getting started with extractive summarization
Lecture 159 Getting Named Entities
Lecture 160 Calculate sentence position weights
Lecture 161 Create a map of sentences containing important entities
Lecture 162 Find title keywords if available
Lecture 163 Create a graph representation for TextRank-like algorithm
Lecture 164 Analyze sentence relationships
Lecture 165 Named entity scoring
Lecture 166 Title keyword overlap
Lecture 167 Textrank-like score using similarity matrix
Lecture 168 Cohesion score, sentence scoring, and taking top-ranked sentences
Lecture 169 Extracting keywords
Lecture 170 Implementing GetResponse
Lecture 171 Setting up the web app
Lecture 172 Calling the summarizer package from the web app
Section 12: Natural Language Processing: Interfacing with Hugging Face
Lecture 173 Getting a Hugging Face API key
Lecture 174 Setting up a Taskfile
Lecture 175 Setting up Hugging Face in the summarizer package
Lecture 176 Setting up the summarizer function for Hugging Face
Lecture 177 Updating GenerateSummary for Hugging Face
Lecture 178 Setting up Hugging Face in the web app
Lecture 179 Trying things out
Section 13: Natural Language Processing: Summarizing text using LLMs
Lecture 180 Installing and configuring Ollama
Lecture 181 Setting up OpenAI in the summarizer package
Lecture 182 Updating GenerateSummary for OpenAI
Lecture 183 Update the web app for OpenAI
Lecture 184 Trying things out
Section 14: Natural Language Processing: Hybrid Summarization
Lecture 185 Setting up hybrid summarization in the summarizer package
Lecture 186 Updating GenerateSummary for Hybrid summaries
Lecture 187 Update the web app for Hybrid summaries
Lecture 188 Implementing CLI mode
Developers who want to see how AI & Machine Learning can improve their development skills while working in the Go programming language.