Искусственный интеллект и нейронные сети C#. Машинное обучение для начинающих. Простая нейросеть.
Вставка
- Опубліковано 2 чер 2019
- Мы изучим основные понятия и теорию необходимые для создания нейронных сетей, поймем главный принцип работы искусственного интеллекта и приступим к реализации простой нейронной сети на языке программирования C#.
Этот практический интенсив по языку программирования C# посвящен знакомству с областью искусственного интеллекта и реализации нейронной сети с помощью C#. Мы рассмотрим задачи нейронных сетей и пример создания нейронной сети. Мы обсудим понятия искусственный интеллект (artificial intelligence, ai), машинное обучение (machine learning) и глубокое обучение (deep learning) и в чем их основные отличия. Мы создадим нейросеть c# (neural networks) для медицинской организации, которая будет работать с двумя популярными направлениями: анализ и прогнозирование статистических данных, а также распознавание образов (компьютерное зрение). Мы рассмотрим области, где может выполняться применение нейронных сетей на практике и какие задачи они способны решать. В первую очередь мы изучим основы нейронных сетей, что такое искусственный интеллект (ии), как создать нейросеть, что из себя представляет искусственный разум, а также уделим много времени практической разработке нейронная сеть c#. Нами будет реализована нейронная сеть с нуля, без использования специальныйх фреймворков и библиотек. Данный курс это практика c# на задаче разработки нейросети. Сейчас искусственный интеллект это очень популярный инструмент для решения многих прикладных задач разработки во многих предметных областях. Создание нейронной сети не самый простой процесс и для грубокого понимания будут необходимы хорошие знания математики и языков программирования. Данный курс можно отнести к разряду нейронные сети для чайников. Вы узнаете что такое нейронные сети и мы будем много говорить про искусственный интеллект c# и как создать нейронную сеть. На самом деле нейронные сети c# реализуются достаточно редко, в основном используется язык Python, но на самом деле может применяться любой язык программирования.
Обучение нейронной сети выполняется на открытых датасетах с сайта kaggle.com:
www.kaggle.com/ronitf/heart-d... - Датасет болезней сердца - эта база данных содержит 76 атрибутов, таких как возраст, пол, тип боли в груди, артериальное давление в покое и другие
www.kaggle.com/iarunava/cell-... - Набор данных о клетках малярии - сотовые изображения для выявления малярии
-----------
ПОДПИШИСЬ на соцсети:
🔴 TELEGRAM: bit.ly/tg_codeblog
🔴 VK: bit.ly/vk_codeblog
🔴 INSTAGRAM: bit.ly/inst_codeblog
🔴 Яндекс Дзен: bit.ly/zen_codeblog
🔴 FACEBOOK: bit.ly/fb_codeblog
🔴 TWITTER: bit.ly/twit_codeblog
🔴 Мой блог: bit.ly/site_codeblog
-----------
ПОДДЕРЖИ развитие CODE BLOG:
💲 Донат: bit.ly/donate_codeblog
💲 Спонсорство: bit.ly/patreon_codeblog
-----------
СМОТРИ мои обучающие курсы:
👉 УЧИМ ШАРП: bit.ly/cs_codeblog
👉 ПРАКТИЧЕСКИЙ ИНТЕНСИВ #1: bit.ly/fit_codeblog
👉 ПРАКТИЧЕСКИЙ ИНТЕНСИВ #2: bit.ly/crm_codeblog
👉 СТРУКТУРЫ ДАННЫХ: bit.ly/ds_codeblog
👉 АЛГОРИТМЫ СОРТИРОВКИ: bit.ly/sort_codeblog
👉 ОТВЕТЫ НА ВОПРОСЫ: bit.ly/faq_codeblog
👉 IT ПЕРЕОЗВУЧКА: bit.ly/resound_codeblog
👉 НЕЙРОННАЯ СЕТЬ: bit.ly/ai_codeblog
👉 ПАТТЕРНЫ ПРОЕКТИРОВАНИЯ: bit.ly/pattern_codeblog
👉 CODE REVIEW: bit.ly/review_codeblog
👉 CLR via C#: bit.ly/clr_codeblog
-----------
Кстати, меня зовут Шванов Вадим, и я профессиональный .NET разработчик с 2011 года и автор этого канала CODE BLOG. Я рассказываю про IT технологии и веду абсолютно бесплатный курс по языку C# с нуля. В его рамках мы рассмотрим как базовый синтаксис языка C Sharp, так и его практическое применение и специальные технологии, такие как ASP .NET, .NET Core, ASP.NET MVC, Unity, WPF, структуры данных и алгоритмы, с#, dotnet, паттерны проектирования, информатика, csharp, программное обеспечение и многое другое. Для меня важно не только показать практическое применение языка си шарп, но и объяснить основную идею и базовые понятия Computer Science. В качестве основного инструмента разработки используется Visual Studio c# и проекты на Visual c#. Если вам нравятся такие каналы как хауди хо, айти борода, Soer или ExtremeCode, то здесь вам точно понравится.
-----------
#codeblog #программирование #csharp #ityoutubersru #программист #разработка
Искусственный интеллект - очень популярное направление разработки. На этом практическом интенсиве мы реализуем простую нейронную сеть на языке программирования C# для медицинской организации и рассмотрим все основные теоретические и практические понятия и подходы машинного обучения.
Не стесняйтесь задавать вопросы в комментариях, высказывать свое мнение, а также обязательно поставьте лайк под видео. Этим вы легко можете помочь развитию образовательного канала. И приятного просмотра!
Исходный код проекта доступен на github: github.com/shwanoff/neuralnetworks
А для общения заходите в наши чаты:
Общий чат в телеграм: ttttt.me/codeblog_chat
Чат по C# в телеграм: ttttt.me/codeblog_csharp
Чат в дискорд: discord.gg/EV2WdyP
Друг, я лично очень ценю твои ролики, это очень очень годный контент, даже если ты финансовыми плюхами не доволен, просто знай что мы нищие глупцы на тебя чуть ли не молимся, твой опыт нам необходим как воздух, продолжай в том же духе, возможно кто то начиная с твоего канала станет гением компьютерного управления) ты уже можешь гордиться своей деятельностью! Мы тебя ценим, уважаем и всегда ждем что ты нас удивишь, в очередной раз! красаучик продолжай в том же духе
Огромное спасибо, за столь подробные объяснения и наглядную, и что не маловажно - подробную, реализацию)
Огромное спасибо тебе за уроки, очень хорошо запоминается, продолжай в том же духе! Ты лучший!!!!
Большое спасибо за ваш труд. 👍👍👍👍
Спасибо. Доступно объясняешь!
Пожалуйста, стараюсь )
Огромное спасибо за все эти замечательные и бесплатные уроки !!
Отличное видео, спасибо!
Спасибо, ты один среди кучи блогеров смог мне понятно объяснить что такое нейросеть
1:19:00 public List(IEnumerable collection) Initializes a new instance of the System.Collections.Generic.List`1 class that contains elements copied from the specified collection and has sufficient capacity to accommodate the number of elements copied.
Очень интересный урок! Спасибо тебе огромное!
Всегда пожалуйста )
Благодарю, прекрасная реализация
0:00 Теория
36:20 Практика
Спасибо )
Все как всегда на высшем уровне!)
Спасибо )
Благодарю за стрим!
Всегда пожалуйста )
Было круто) Спасибо!
спасибо за урок
Самий лучший курс с# вес ютубе
спасибо, отличное подробное видео! Лайк от СЕООНЛИ
Лайк и подписка авансом.
Надеюсь оправдается ;) очень интересна тема нейросетей. Причём не обвязка, а решение.
Спасибо.
Класс!!!
Спасибо!
Направление популярное, уже и в моя сфера деятельности уже приходит к тому, что потихоньку нужно внедрять нейронки, хоть и простейшие. Пока все обходилось только математикой. Но тут есть потребность в алгоритме, как человеку мне понятно как нужно, а машине объяснить то, что как я человек понимаю, о-о-о-очень трудно если использовать только математику.
вот это крутота!
Уважаемый Шванов Вадим , подскажите пожалуйста, как сделать НС, неподверженную локальным минимумам, а неуклонно идущей к глобальному минимуму ошибки, при обучении. Ну кроме смещения старта обучения или дропаута?
Блин круто объясняешь спасибо большое
спасибо огроное!!!!!!!!!!!!!!!!!!!!!!!!!!!
Правильно ли объединять сходные по смыслу классы в один файл или лучше на каждый класс свой файл создавать?
Я открыл два аккаунта и подписался на оба из них
Круто
Рад, что понравилось )
А можно попробовать сделать на Java Script?
Вадим! Отличный урок, хорошо объясняете сложную тему как нейронные сети.
Скажите
:
1. Как понимать вычисляемое свойство после лямбды-оператора?
"public int NeuronCount => Neurons?.Count ?? 0;"
2. NeuronType задается в двух классах: Neuron и Layer. Разве не достаточно назвать в одном классе?
public int NeuronCount => Neurons?.Count ?? 0; если Neurons == null, то вернется 0. Иначе вернется фактическое количество нейронов.
да, возможно это лучше сделать в одном месте
Я хочу освоить программирование, на начальном этапе изучение ИИ будет разумным или все же основы обкатать?
Лучше начать с основ программирования. сложно прочитать книгу, если ты не знаешь алфавит )
Красава
На 55-56 минуте прям Жиза)))
без музыки было бы лучше, я бы включал свою на фоне и твой голос.. и не мешало бы одно другому, а так слушать твою музыку часами..но большинству наверное норм
вот именно
Благодарю, есть готовые библиотеки по нейросети на С#? благодарю.
ML.net
В бесплатной VS 2019 Community тоже есть эти подсказки над методами.
Разве? но я community уже года 4 не пользуюсь, раньше не было
На самом деле это не так страшно. Community вполне крута, учитывая, что она бесплатная
Подскажи, пожалуйста: написал фактически так же и с такой же структурой, только вместо списков везде использовал массивы. Однако при попытке прохождения модульных тестов они не запускаются. Происходят 2 ошибки:
1) Ошибка CS5001 Программа не содержит статического метода "Main", подходящего для точки входа.
2) Ошибка CS0006 Не удалось найти файл метаданных C:\programming\Neuro\NeuralNetwork\NeuralNetwork\bin\Debug\NeuralNetwork.exe".
Не могу понять, в чём причина и как это исправить
Upd.: Просмотрел твой код с GitHub и всё видео внимательно, не нашёл, где у тебя был бы метод Main или что-то подобное (на момент конца данного урока)
Upd.2: Понимаю, что нужен Main для точки входа в программу, но у вас на этот момент я нигде не вижу ни этого метода, ни класса Program с этим методом
так это же библиотека. Ее нужно использовать в другом проекте. Например тут github.com/shwanoff/neuralnetworks/blob/master/MedicalSystem/Program.cs
@@CODEBLOG Так и есть. Можно считать, что я начинающий и до этого не пользовался модульными тестами. Я добавил в свой проект Program.cs и метод Main(), после чего тест заработал. Мне не понятно другое: почему в твоём проекте тесты работали без функции Main()?
Уточните как создавался пустой проект? Это Консоль или что-то другое?
Здравствуйте, не подскажите, какой тип проекта вы выбирали в визулке, при создании, а то чтобы я не создал, компилятор ругается что нет main
Такая же проблема при попытке провести модульные тесты. Вы решили эту проблему?
@@TheFroller, к сожалению, нет
@@zloyenot3989 я к этому же ролику писал коммент. Там описал, как смог решить: создал в проекте класс program.cs, в нем пустой метод Main(). Его можно вообще откуда угодно скопировать. Так запустилось
здравствуйте, точно такая же проблема. Вам удалось ее решить?
@@army-wi7dp да. Выше в этой ветке написал
Друг,извини может я не понимаю ,я вообще новичок..а Main куда именно вставить ?а то точку входа не находит..
Привет. Между скобочками фигурными
static void Main(string[] args)
{
// здесь идет код
}
часто ли кто-либо встречал ІОТ на .Net в качестве проекта на epam?
Привет. В твоем проекте отсутствует Program.cs. Во время теста VS2019 ругается, что его нет. Ты его также удалил при создании проекта или это проект не консольного приложения изначально?
пустой проект
как я понял это пустое решение с созданным проектом библиотека классов
Разъяснение, что такое нейрон и про слои понравилось.
А вот пример, что-то не очень, 4 дискретных входа if, else логика 🤷♂️
интересней было-бы реальный пример, что-то типа графика температуры которая в виде псевдо синусоиды меняется и выход уже выдает нагрев (млин ПИД регулирование описал 🤣)
Объект класса нейрон не является нейроном, это узел внутри нейрона.
А вообще спасибо за контент)
Ну это уже тонкости, нужно абстрагироваться от деталей, не влияющих на работу :)
Спасибо за подробное объяснение на примерах.
Но у меня на запуске тестов выдает:
Ошибка CS5001 Программа не содержит статического метода "Main", подходящего для точки входа. NeuralNetworks C:\Users\klaxw\source
epos\NeuralNetworks C:\Users\klaxw\source
epos\NeuralNetworks\CSC 1 Активные
Хотя делал все один в один, как на видео...
Решил проблему. Скопировал из другого проекта файл Program.cs, переименовал имя класса под проект...
Заработало...
Когда начнете делать двойников (с принтером или как старина Кастанеда описывал) меня не забудьте позвать!) Скорее люди превратятся в био-роботов, чем искусственный интеллект станет явью!
То что можно вложить в ролик на 10 мин, сумбурно поясняется в течении полу часа.
Оооочень абстрактное пояснение
Недавно узнал, что один чувак начал мемасы прогонять через нейросетку, чтобы они были в 8К 60FPS :) Надо тоже эту нишу занимать
как успехи, занял нишу?
Здравствуйте, не запускается программа, пишет "Ошибка CS5001 Программа не содержит статического метода "Main", подходящего для точки входа." Если поможете буду благодарен !
Наверное в классе Program что-то поломалось. посмотри там. должно быть что-то вроде
using System;
namespace HelloWorld
{
class Hello
{
static void Main()
{
Console.WriteLine("Hello World!");
// Keep the console window open in debug mode.
Console.WriteLine("Press any key to exit.");
Console.ReadKey();
}
}
}
тоже самое .....ответ не понятен ...
@@TheVaddy74 static void Main(string[] args) у вас в программе должен быть, а в нем вызываться нужные функции
Здравствуйте. У вас где на видео не указывался метод Main но тесты прошли, как это сделали? Потому что у меня он спрашивает про метод Main а мы с вами в этом видео указали только реализацию объектов без точки входа.
Первый раз смотрю видео на скорости х2. обычно 1.25 или 1.5
Можно ли сказать что Искусственный интеллект будет достигнут тогда, когда алгоритм сам начнет создавать себе подобные и усовершенствовать себя?
заебёшься ты такую сеть делать конечно)
Сейчас критерием принятия существования искусственного интеллекта является тест Тьюринга. а самообучащиеся нейронки уже и сейчас есть )
Но чувства то тоже должны присутствовать у ИИ
@@_digitall_ ну, скорее воображение или его подобие
@@_digitall_ какие чувства могут быть у машины?Она эмулирует сознания не является им
а есть ли ссылка на гит?
Есть github.com/shwanoff/neuralnetworks
@@CODEBLOG спасибо😊, продолжай свою деятельность, класно получается👍
Что же лучше? - - - - ИИ на c# или ИИ на Python???
Мне кажется на Python сделать будет значительно быстрее и проще, хотя возможно ml.net... сложно сказать точно, но большинство пишут на python
у меня модульный тест не создается. пишет что только для не тестовых проектов и внутри общего класса или метода. как пофиксить и сделать его не тестовым ?
я удалил все нагет пакеты в проекте, перезапустил студию и установил обратно. Мне это помогло
С чего это списки быстрее массивов?)
А разве я такое говорил? Если да, то оговорился. Массивы намного быстрее связных списков, а если говорить про обычный список, то он основан на массиве, но все равно уступает в производительности массивам
@@CODEBLOG бро я не пытаюсь хейтить ты просто оговорился а я порофлил я сам .NET backend разработчик я просто прикольнулся. Я же понимаю что ты оговорился но это же повод чисто пошутить не?)
Да я же не против, наоборот это хорошо, что поправил в комментах )
Всем Привет!)
CS5001 Программа не содержит статического метода "Main", подходящего для точки входа. NeuralNetworks C:\Users\Alex\source
epos\NeuralNetworks\NeuralNetworks\CSC
CS0006 Не удалось найти файл метаданных "C:\Users\Alex\source
epos\NeuralNetworks\NeuralNetworks\bin\Debug\NeuralNetworks.exe". NeuralNetworksTests C:\Users\Alex\source
epos\NeuralNetworks\NeuralNetworksTests\CSC
В чем проблема? Переписывал все как на видео.
Проблема решена. Мне надо было всего лишь зайти в Проект--->Свойства найти выпадающий список "Тип выходных данных" и поменять его на "Библиотека классов", которое изначально может быть установлено "Консольное приложение"
Молодец, что разобрался и написал об этом )
@@MrLeshenka понимаете, скольких вы спасли от нервного срыва? Спасибо вам огромное
У меня такой вопрос: не лучше ли было с т.з. производительности нейроны сделать не классом, а структурой?
Не факт, нужно тестить, но мне кажется если бы и был выигрышь, то совсем небольшой. а вот сделать на основе матрицы - это да, это реально повысит производительность.
А нельзя было написать там цифры что бы распознавал, или смайлики
для тех, кому интересно как реализовать тоже самое через матрицы: yadi.sk/d/Ekki7VOiO0r6yA
Надеюсь это не вирусы? ))
@@CODEBLOG нет, там ссылка на яндекс диск с проэктом
лучше на гитхаб выкладывать, чем на яндекс диск )
Какой проект вы создали для этого?
То есть вы создали пустой проект, что выбрали?
Blank Solution или Пустое решение
Очень плохой код в плане проектирования много дубляжа кода с небольшими изменениями, а так полезно в плане концепции)
9:08 Т.е. можно загрузить в эту систему, например, базу убийц, в которой 60% будут белые, а 40% - остальные расы. А если затем уже обученной системе дать проанализировать какого-то обычного человека, она скажет "С вероятностью 60% он убийца"?
Ну, если вы в качестве входных данных дадите только, допустим, процент людей в группах и больше ничего - все будет как вы написали. В принципе, тогда это будет абсолютно правильный ответ.
Я понимаю, вся сеть работает на числовых значениях.
А если нужно анализровать текстовые данные?
прошу прощения, я как играть в покер смотрел, и уснул, в какой части интернета я оказался?
А не лучше просто видео снять, и материал сжатым сделать?
здравствуйте, я новичок. Уже все перепробовала, но при запуске говорит "проект, библиотека классов которого имеет тип"Тип выходных данных", нельзя запустить напрямую.
чтобы выполнить отладку этого проекта, добавьте проект исполняемого файла в это решение, ссылающееся на проект библиотеки. Задайте проект исполняемого файла в качестве запускаемого проекта."
Русский-не родной язык. Возможно, что-то не так поняла.
Тебе нужно создать проект, который будет выполнять библиотеку. Во-первых, посмотри правильный ли проект выбран в качестве стартового, а во-вторых, если нет exe приложения - создай его и вызывай библиотеку
@@CODEBLOG А какой проект должна выбрать? Я выбрала консольное приложение(.NET Core).
жалко що відео більше не виходять(
Елиб ты еще не отвлекался на этих дурачков что пишут в чате хрень, было бы замечательно. А то ты в процессе завиаешь и выглядит это не очень.
После того как было сказано, что у человека в мозгу 10^21 нейронов (на самом же деле на 10 порядков меньше), перестал смотреть, ибо такие ошибки (на 10 порядков!) вызывают сомнения к информации что вещает человек, к его компетентности.
Так же, имхо, видно, что человек не готовился к выступлению, типа просто включил камеру и начал с кандачка вещать (таково мое субъективное впечатление).
semen083, если ты это когда нибудь прочтешь, то ты за***л своими докапываниями с самого начала практики. Это обучающее видео нацеленное на конкретную тему, а не обучение принципам, парадигмам и соглашениям по именованию со сниппетами и прочему
В следующий раз форточку открывай перед заходом на стрим, от тебя слишком душно
он надушнил в чате и спокойно ушел дальше в интернет. так что его тут не будет
Надо лучше готовиться к лекции, а не думать на ходу
зачем напихивать всем в уши свою музыку. тем более тем кто на двойной скорости любит слушать
спасибо за урок
Всегда пожалуйста ) очень рад, что нравится )