مرورگر شما از این ویدیو پشتیبانی نمی کند.
نکته:
ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
(صرفا برای مشاهده نمونه ویدیو، ممکن هست نیاز به شکن داشته باشید.)
بارگزاری مجدد
توضیحات دوره:
مبانی هوش مصنوعی و یادگیری ماشین را بیاموزید و آنها را در برنامههای Go خود پیادهسازی کنید.
در این دوره موارد زیر را خواهید آموخت:
- یادگیری اصول پایه هوش مصنوعی
- تسلط بر الگوریتمهای جستجوی AI (مانند BFS، DFS، GBFS، Dijkstra و A*)
- درک مفاهیم بنیادی یادگیری ماشین (Machine Learning)
- ایجاد محیطهای مدلسازی با قوانین مشخص برای هوش مصنوعی
- مدیریت احتمالات در سیستمهای هوشمند
- آموزش مدلها با استفاده از رگرسیون خطی ساده و چندگانه
- پیادهسازی و بهکارگیری شبکههای عصبی
- اتصال به مدلهای از راه دور در سرویسهایی مانند Hugging Face
- ادغام اپلیکیشنهای Go با مدلهای زبانی بزرگ (LLMs) مانند ChatGPT و مدلهای محلی
پیش نیازها:
- آشنایی مقدماتی با زبان برنامهنویسی Go
- آشنایی مقدماتی با زبان برنامهنویسی Python
- ترجیحاً سیستمی دارای GPU (کمککننده است اما الزامی نیست)
آیا توسعهدهنده Go هستید و میخواهید وارد دنیای هیجانانگیز هوش مصنوعی و یادگیری ماشین شوید؟ این دوره یک راهنمای جامع است که بهطور اختصاصی برای Gopherهایی طراحی شده که میخواهند مهارتهای قدرتمند AI را به ابزارهای خود اضافه کنند.
بخش زیادی از کدها در این دوره به زبان Go نوشته شده است، اما در مواردی که منطقیتر باشد از Python استفاده شده است؛ بنابراین داشتن دانش پایه در هر دو زبان ضروری است.
ما با مفاهیم بنیادی AI شروع میکنیم و با پروژههای عملی، زیربنایی قوی میسازیم. سپس به دنیای یادگیری ماشین سفر میکنیم و از مدلهای رگرسیون کلاسیک تا شبکههای عصبی مدرن را بررسی میکنیم. شما یاد میگیرید چگونه از قدرت Go برای ساخت اپلیکیشنهای AI با کارایی بالا استفاده کنید و آن را با ابزارهای پیشرفتهای مانند Hugging Face و LLMها ادغام نمایید.
آنچه در این دوره میآموزید:
الگوریتمهای جستجو و عوامل هوشمند: تسلط بر الگوریتمهای کلیدی مانند A* و Dijkstra از طریق حل هزارتوها و ساخت جاروبرقی رباتیک.
منطق گزارهای و بررسی مدل: بررسی نحوه تصمیمگیری عوامل هوشمند بر اساس اطلاعات موجود در محیط.
مدیریت عدم قطعیت: یادگیری نحوه برخورد AI با تصادفی بودن محیط از طریق ساخت هوش مصنوعی بازی Battleship و Blackjack.
مبانی یادگیری ماشین: درک عملی رگرسیون خطی با ساخت مدلهایی در Python و Go برای پیشبینی قیمت مسکن.
یادگیری عمیق و شبکههای عصبی: ساخت شبکه عصبی از صفر و پیادهسازی شبکه عصبی پیچشی (CNN) برای طبقهبندی تصاویر.
پردازش زبان طبیعی (NLP): ایجاد برنامه خلاصهساز متن در Go، اتصال به مدلهای Hugging Face و استفاده از LLMها برای سیستمهای خلاصهسازی ترکیبی.
مدلهای زبانی بزرگ (LLMs): اتصال برنامههای Go به ChatGPT و مدلهای محلی از طریق Ollama با کدهای کاملاً سازگار با OpenAI.
نیازمندیهای دوره
این دوره برای توسعهدهندگان Go در سطح متوسط تا پیشرفته است. شما باید با سینتکس و مفاهیم اصلی Go راحت باشید. آشنایی با ساختارهای داده مانند گرافها و درختها مفید است اما الزامی نیست. همچنین داشتن دانش پایه پایتون مورد نیاز است.
این دوره بر روی سیستمهای ویندوز، مک و لینوکس قابل اجراست. اگرچه GPU سرعت یادگیری عمیق را افزایش میدهد، اما تمام پروژهها روی CPU نیز قابل اجرا هستند.
چرا این دوره؟
این یک دوره معمولی یادگیری ماشین نیست؛ بلکه برای برنامهنویسان Go شخصیسازی شده است. شما یاد میگیرید چگونه اپلیکیشنهای AI آماده تولید (Production-ready) بسازید که از قدرت پردازشی و همزمانی (Concurrency) زبان Go بهره میبرند. در پایان، شما مجموعهای از پروژههای عملی را در رزومه خواهید داشت.
آمادهاید تا آینده هوش مصنوعی را با Go بسازید؟ همین حالا ثبتنام کنید!
سرفصل ها و درس ها
مقدمه
Introduction
مقدمه
Introduction
کمی درباره من
A bit about me
نصب زبان Go
Installing Go
نصب محیط توسعه (IDE)
Installing an IDE
تنظیم VS Code برای پایتون
Setting up VS Code for Python
جستجو و هوش مصنوعی - بخش اول
Search and Artificial Intelligence Part I
آنچه در این بخش میآموزیم
What we'll cover in this section
تعریف هزارتو
Defining a maze
بارگذاری هزارتو از دیسک
Loading the maze from disk
جستجوی بدون اطلاع (Uninformed Search)
Uninformed Search
شروع کار با جستجوی اول عمق (DFS)
Getting started with Depth First Search (DFS)
تست الگوریتم DFS
Trying out our DFS algorithm
افزودن خروجی تصویری به پروژه
Adding image output to our project
ساخت انیمیشن از فرآیند حل هزارتو
Producing an animation of the maze solving process
پیادهسازی جستجوی اول پهنا (BFS)
Implementing Breadth First Search (BFS)
پیادهسازی جستجوی دایکسترا
Implementing Dijkstra's Search
افزودن هزینه منهتن به تصاویر تولید شده
Adding the Manhattan Cost to our generated images
جستجوی با اطلاع (Informed Search)
Informed Search
پیادهسازی جستجوی حریصانه (GBFS)
Implementing Greedy Best First Search (GBFS)
جستجوی A*: بررسی کلی
A* Search: an Overview
پیادهسازی جستجوی A
Implementing A* Search
افزودن موانع به هزارتو
Adding obstructions to our maze
محاسبه هزینه با وجود موانع
Calculating cost with obstructions
جمعبندی
Summary
جستجو و هوش مصنوعی - بخش دوم
Search and Artificial Intelligence - Part II
آنچه در این بخش میآموزیم
What we'll cover in this section
شروع کار با جاروبرقی رباتیک
Getting started with our robot vacuum
بارگذاری تنظیمات اتاق
Loading the Room configuration
شروع چاپ وضعیت اتاق در ترمینال
Getting started printing the room to the terminal
تکمیل چاپ وضعیت اتاق در ترمینال
Finishing up printing the room to the terminal
بارگذاری مبلمان و موانع
Loading furniture and obstacles
بررسی کلی الگوریتم Random Walk
The Random Walk algorithm overview
تنظیم توابعی که هر الگوریتم نظافتی به آنها نیاز دارد
Setting up functions that every cleaning algorithm will need
پیادهسازی A* برای الگوریتم Random Walk
Implementing A* for the Random Walk algorithm
شروع پیادهسازی الگوریتم Random Walk
Getting started with the Random Walk algorithm
الگوریتم خط برزنهم و حرکت در خط تا برخورد با مانع
Bresenham's line algorithm and moving along a line until obstructed
تکمیل تابع CleanRandomWalk
Finishing up the CleanRandomWalk function
تست کد با CleanRandomWalk
Trying out our code with CleanRandomWalk
الگوریتم SLAM
The SLAM algorithm
شروع کار با الگوریتم SLAM
Getting started with the SLAM algorithm
افزودن همسایهها به مرز جستجو
Adding neighbors to the frontier
ادامه پیادهسازی الگوریتم SLAM
Continuing with the SLAM algorith
افزودن بررسی دقیق مرز و پوشش کافی محیط
Adding a thorough frontier check and checking for sufficient coverage
تکمیل و تست الگوریتم SLAM
Finishing up and trying our SLAM algorithm
الگوریتم مارپیچی (Spiral)
The Spiral Algorithm
شروع کار با الگوریتم مارپیچی
Getting started with the Spiral algorithm
یافتن مرکز اتاق و ایجاد الگوی مارپیچ
Finding the room center and creating a spiral pattern
تکمیل الگوریتم مارپیچی
Finishing up the Spiral alogorithm
الگوریتم مارپیچ خطی (Snaking)
The Snaking (or Boustrophedon path) algorithm
شروع کار با الگوریتم Snaking
Getting started with the Snaking algorithm
تکمیل الگوریتم Snaking
Finishing up the Snaking algorithm
افزودن تشخیص مانع
Adding obstacle recognition
پیچیدهتر کردن محیط با حضور گربه
Complicating matters with a Cat
تکمیل منطق مربوط به گربه
Finishing up the Cat logic
عوامل مبتنی بر دانش: منطق گزارهای
Knowledge Based Agents: Propositional Logic
آنچه در این بخش میآموزیم
What we'll cover in this section
شروع کار با چندین اتاق
Getting started with multiple rooms
راهاندازی کد برای چندین اتاق (بدون منطق)
Getting the code working for multiple rooms, but without logic
تعریف جدول حقیقت و قوانین منطق گزارهای
Defining our truth table and rules for propositional logic
شروع ساخت دنیای منطقی
Getting started with our logical world
تکمیل متدهای دنیای منطقی
Finishing up the methods for our logical world
شروع ساخت ربات دارای قابلیت منطقی
Getting started with our logic enabled robot
تست ربات و دنیای منطقی جدید
Trying out our new logic aware robot and world
تکمیل ربات منطق گزارهای
Finishing up the propositional logic robot
عوامل مبتنی بر دانش: بررسی مدل
Knowledge Based Agents: Model Checking
آنچه در این بخش میسازیم
What we'll build in this section
شروع کدنویسی
Getting started with our code
بارگذاری متقاضیان از فایل CSV
Loading applicants from the CSV file
تنظیم ویژگی عدالت (Fairness)
Setting up the fairness property
تنظیم ویژگی ریسک (Risk)
Setting up the risk property
تکمیل منطق بررسی مدل و تست نهایی
Finishing up our model checking logic and trying things out
هوش مصنوعی و عدم قطعیت - بخش اول
Artificial Intelligence and Uncertainty I
آنچه در این بخش میآموزیم
What we'll cover in this section
شروع ساخت بازی Battleship
Getting started with our Battleship game
تنظیم بازیکن انسانی
Setting up the Human player
تنظیم بازیکن AI
Setting up the AI player
قرار دادن کشتیهای بازیکن AI
Placing the AI player's ships
قرار دادن کشتیهای بازیکن انسانی
Placing the Human player's ships
پیادهسازی نوبت بازیکن انسانی
Letting the Human player take a turn
شروع پیادهسازی نوبت بازیکن AI
Getting started with letting the AI player take a turn
تنظیم huntModeBoosts
Setting up huntModeBoosts
تکمیل نوبت بازیکن AI
Finishing up letting the AI player take a turn
نمایش نقشه حرارتی (Heat Map) و تست
Displaying the heat map and trying things out
بهبود قابلیتهای نقشه حرارتی
Improving our heatmap functionality
غرق کردن کشتیها
Sinking ships
تست بازی نهایی
Trying out the finished game
هوش مصنوعی و عدم قطعیت - بخش دوم
Artificial Intelligence and Uncertainty II
آنچه در این بخش میآموزیم
What we'll cover in this section
شروع ساخت بازی Blackjack
Getting started with our Blackjack game
پاکسازی صفحه، ساخت دسته کارت و بُر زدن
Clearing the screen, creating a deck of cards, and shuffling them
استراتژی مورد استفاده شمارنده کارت
The strategy our card counter will use
قابلیتهای شمارش کارت برای بازیکن AI
Card counting abilties for our AI player
بررسی نیاز به بُر زدن مجدد و ساخت بازیکنان
Checking if the deck needs re-shuffled and creating players
توزیع کارتها به سه بازیکن و محاسبه امتیازات
Dealing cards to all three players and calculating scores
نمایش دستهای بازیکنان
Displaying the players' hands
اجرای یک دور برای بازیکن انسانی
Playing a round for the Human player
اجرای یک دور برای بازیکن AI
Playing a round for the AI player
اجرای نوبت Dealer و تست نهایی
Playing a round for the Dealer and trying things out
یادگیری ماشین در پایتون (نظارت شده): رگرسیون خطی و چندگانه
Machine Learning in Python (supervised): Linear & Multiple Linear Regression
آنچه در این بخش میآموزیم
What we'll cover in this section
شروع برنامه: بارگذاری و پیشپردازش دادهها
Getting started with our program: loading and pre-processing the data
آمادهسازی دادهها برای مدلسازی، تقسیم دادهها و آموزش مدل
Prepare data for modeling, split data, and train the model
ارزیابی مدل
Evaluating our model
چاپ نتایج آموزش در کنسول
Print the results of our training to the console
نمایش بصری (Visualization) دادهها
Display a visualization of the data
پیشبینی قیمت خانه بر اساس دادههای خارج از مجموعه
Predict a house's price based on data outside our dataset
شروع رگرسیون خطی چندگانه در پایتون
Getting started with Multiple Linear Regression in Python
پیادهسازی قابلیتهای پردازش داده
Implement data processing capabilities
توسعه عملیات مدل - بخش اول
Develop the model operations - Part I
توسعه عملیات مدل - بخش دوم
Develop the model operations - Part II
تست کدهای نوشته شده تا این لحظه
Trying out the code we've written so far
بصریسازی: نمایش نتایج
Visualization: Display Results
ساخت دادهها برای بصریسازی
Creating data for visualizations
ساخت بصریسازی دو بعدی
Creating a 2d visualization
ساخت بصریسازی سه بعدی
Creating a 3d visualization
یادگیری ماشین در Go (نظارت شده): رگرسیون خطی و چندگانه
Machine Learning in Go (supervised): Linear & Multiple Linear Regression
آنچه در این بخش میآموزیم
What we'll cover in this section
شروع برنامه: تحلیل فلگهای خط فرمان
Getting started with our program: parsing command line flags
تعریف تایپها، بارگذاری و اعتبارسنجی دادهها
Setting up types, and loading and validating data
تنظیم تایپ رگرسیون خطی و ذخیرهسازی دادههای مدل
Setting up the Linear Regression Type, and persisting model data
بارگذاری دادهها و چاپ اطلاعات خلاصه
Loading data and printing summary info
ساخت مدیریت مدل (Model Handler) و تست بارگذاری
Setting up a Model handler and trying out loading data
نرمالسازی ویژگیها (Normalize Features)
Normalize Features
آموزش مدل
Training the model
نمایش اطلاعات مدل آموزش دیده
Displaying trained model information
تست آموزش مدل
Trying out training a model
ذخیره و بارگذاری مدل آموزش دیده
Saving and Loading a trained model
ساخت متد Predict برای تایپ LinearRegression
Setting up a Predict method on the LinearRegression type
تنظیم تابع handlePrediction
Setting up the handlePrediction function
نمایش پیشبینیها
Displaying Predictions
نصب اپلیکیشن Sidecar برای بصریسازی دادهها (Plot)
Installing a sidecar application to create a visualization of the data (plot)
نوشتن کد Go برای فراخوانی اپلیکیشن Sidecar - بخش اول
Writing the Go code to call the sidecar application: Part I
نوشتن کد Go برای فراخوانی اپلیکیشن Sidecar - بخش دوم
Writing the Go code to call the sidecar application: Part II
تست قابلیت رسم نمودار
Trying out our plotting functionality
بهروزرسانی اپلیکیشن پایتون برای ذخیره در فرمت JSON
Updating our Python app to save to JSON format
بارگذاری مدل آموزش دیده در پایتون در اپلیکیشن Go
Loading a model trained in Python in our Go application
یادگیری ماشین: شبکههای عصبی
Machine Learning: Neural Networks
آنچه در این بخش میآموزیم
What we'll cover in this section
راهاندازی پروژه پایتون برای شبکه عصبی
Setting up a Python project for a Neural Network
بارگذاری و پیشپردازش دادهها
Loading and preprocessing our data
تست بارگذاری دادهها
Trying out loading data
تنظیم سایر فلگهای خط فرمان
Setting up the rest of our command line flags
شروع آموزش شبکه عصبی
Getting started with training our neural network
تنظیم حلقه آموزش (Training Loop)
Setting up the training loop
تست حلقه آموزش
Trying out the training loop
ذخیره مدل آموزش دیده
Saving the trained model
بارگذاری فایل ONNX ذخیره شده و انجام پیشبینی
Loading a saved ONNX file and making predictions
تست تابع پیشبینی
Trying out our prediction function
گربه در برابر سگ: شبکههای عصبی پیچشی (CNN)
Cats vs Dogs: Convolutional Neural Networks
شروع کار با CNN
Getting started with our CNN
تنظیم GPUها (در صورت موجود بودن)
Setting up GPUs, if available
شروع آموزش مدل: بارگذاری دادهها
Getting started with training our model: loading data
تعریف شبکه عصبی
Defining our neural network
تنظیم Forward Pass برای شبکه
Setting up the forward pass for our network
تنظیم تابع زیان (Loss)، بهینهساز و زمانبند نرخ یادگیری
Setting up the loss function, optimizer, and learning rate scheduler
تنظیم تابع train_model
Setting up the train_model function
پیادهسازی توقف زودهنگام (Early Stopping)
Implementing early stopping
بازگردانی بهترین مدل
Best model restoration
ذخیره وضعیت مدل
Saving model state
تنظیم استنتاج (Inference)
Setting up inference
تست نهایی
Trying things out
پردازش زبان طبیعی: خلاصهسازی استخراجی
Natural Language Processing: Extractive Summarization
آنچه در این بخش میآموزیم
What we'll cover in this section
شروع کار با پکیج خلاصهساز متن
Getting started with our text summarization package
ساخت یک اپلیکیشن ساده
Setting up a simple application
شروع کار با ماژول summarizer
Getting started with the summarizer module
پیکربندی خلاصهساز
Configuring our summarizer
شروع خلاصهسازی استخراجی
Getting started with extractive summarization
استخراج موجودیتهای نامگذاری شده (Named Entities)
Getting Named Entities
محاسبه وزن جایگاه جملات
Calculate sentence position weights
ایجاد نقشهای از جملات حاوی موجودیتهای مهم
Create a map of sentences containing important entities
یافتن کلمات کلیدی عنوان
Find title keywords if available
ایجاد نمایش گرافی برای الگوریتمهای مشابه TextRank
Create a graph representation for TextRank-like algorithm
تحلیل روابط بین جملات
Analyze sentence relationships
امتیازدهی به موجودیتهای نامگذاری شده
Named entity scoring
بررسی همپوشانی کلمات کلیدی عنوان
Title keyword overlap
محاسبه امتیاز مشابه Textrank با ماتریس شباهت
Textrank-like score using similarity matrix
امتیاز انسجام، امتیازدهی جملات و انتخاب جملات برتر
Cohesion score, sentence scoring, and taking top-ranked sentences
استخراج کلمات کلیدی
Extracting keywords
پیادهسازی GetResponse
Implementing GetResponse
راهاندازی اپلیکیشن وب
Setting up the web app
فراخوانی پکیج خلاصهساز از طریق اپلیکیشن وب
Calling the summarizer package from the web app
پردازش زبان طبیعی: اتصال به Hugging Face
Natural Language Processing: Interfacing with Hugging Face
دریافت API Key از Hugging Face
Getting a Hugging Face API key
تنظیم Taskfile
Setting up a Taskfile
تنظیم Hugging Face در پکیج خلاصهساز
Setting up Hugging Face in the summarizer package
تنظیم تابع خلاصهساز برای Hugging Face
Setting up the summarizer function for Hugging Face
بهروزرسانی GenerateSummary برای Hugging Face
Updating GenerateSummary for Hugging Face
تنظیم Hugging Face در اپلیکیشن وب
Setting up Hugging Face in the web app
تست نهایی
Trying things out
پردازش زبان طبیعی: خلاصهسازی متن با استفاده از LLMها
Natural Language Processing: Summarizing text using LLMs
نصب و پیکربندی Ollama
Installing and configuring Ollama
تنظیم OpenAI در پکیج خلاصهساز
Setting up OpenAI in the summarizer package
بهروزرسانی GenerateSummary برای OpenAI
Updating GenerateSummary for OpenAI
بهروزرسانی اپلیکیشن وب برای OpenAI
Update the web app for OpenAI
تست نهایی
Trying things out
پردازش زبان طبیعی: خلاصهسازی ترکیبی
Natural Language Processing: Hybrid Summarization
تنظیم خلاصهسازی ترکیبی در پکیج خلاصهساز
Setting up hybrid summarization in the summarizer package
بهروزرسانی GenerateSummary برای خلاصههای ترکیبی
Updating GenerateSummary for Hybrid summaries
بهروزرسانی اپلیکیشن وب برای خلاصههای ترکیبی
Update the web app for Hybrid summaries
پیادهسازی حالت CLI
Implementing CLI mode
نمایش نظرات