Как научиться разбираться в электронике


Как быстро научиться электронике? | Практическая электроника

Как быстро научиться электронике!?  “А не сбрендил ли автор?” – подумаете вы.  Кто-то может за пару лет научиться программировать микроконтроллеры, а кто-то до сих пор будет собирать пищалки и фонарики. Это уже зависит, конечно, от самого человека. Но давайте вернемся к вопросу… Реально ли  можно быстро научиться понимать схемы, собирать по ним электронные безделушки и научиться программировать микроконтроллеры?

Итак, начнем издалека… Жил да был один итальянец.  Звали его Вильфредо Парето. И был он очень наблюдательный, любил за всем наблюдать. Вот как-то наблюдал он за всем и всея и понял одну важную вещь во всей  Вселенной. А звучит эта вещь как-то так:  20% усилий дают 80% результата, а остальные 80% лишь 20% результата . Хм, звучит неплохо, но так ли это? И соблюдается ли этот закон во всей нашей Вселенной? А давайте проверим!  Вот некоторые статистические данные:

20 процентов стран, в которых проживает меньше 20 процентов населения земного шара, потребляют 70 процентов мировых запасов энергии, 75 процентов металла и 85 процентов древесины.

• Менее 20 процентов общей площади Земли дают 80 процентов всех минеральных ресурсов.

• Менее 20 процентов войн приносят более 80 процентов человеческих потерь.

• Где бы вы ни жили, 20 процентов облаков производят 80 процентов дождя.

• Меньше 20 процентов записанной музыки исполняется более 80 процентов времени.

• В большинстве художественных музеев 20 процентов сокровищ демонстрируются 80 процентов времени.

• Менее 20 процентов изобретений оказывают более 80 процентов влияния на нашу жизнь. В двадцатом веке атомная энергия и компьютеры обладали большим влиянием, чем, вероятно, сотни тысяч прочих изобретений и новых технологий.

20 процентов земли дают более 80 процентов продуктов питания.

20 процентов статей “Практической электроники” просматриваются 80 процентами читателей :-).

В действительности весь жизненный цикл, от желудя до гигантского дуба, от маленького зернышка до обширных пшеничных полей, является  отражением принципа 80/20, взятом в самом масштабном значении. Незначительные причины — колоссальные результаты. Вскоре это принцип был назван 80/20 или принципом Парето, в честь наблюдательного итальянца.

       

Чтобы научиться электронике я ходил на радиокружок, читал книжки по электронике, закончил вуз по специальности “Радиотехника”, но про себя я не могу сказать, что я супер-пупер электронщик… Пять лет вуза  – сплошная теория, которая вообще нахрен никому не нужна. Зачем надо было заучивать все эти трехэтажные формулы и теоремы? После окончания вуза они все равно выветрились, как семена одуванчика при легком дуновении ветерка, но все таки я благодарен вузу за то, что там меня научили быстро понимать материал и быстро соображать.

Где-то случайно на страницах Рунета я прочитал про принцип Парето и про себя подумал: “Где же зарыты эти 20% в изучении электроники?”  Проанализировав время, в течение которого я изучал эту сферу,  я все так понял: 20% – это

– сидение по вечерам с паяльником и паяние схем

– радиофорумы и сайты без копипаста с учебников и энциклопедий

– общение с такими же чайниками в электронике

– практика, практика и еще раз ПРАКТИКА!

 

Ох,  а сколько сейчас в Рунете книжек по электронике… “Радиоэлектроника для чайников”, “Занимательная электроника”, “Электроника от А до Я”.

Сколько я их только не перечитал.  Да, согласен, есть хорошие книжки, но в основном книжки по электронике написаны каким-нибудь профессором с пятиэтажными формулами и с логарифмическими графиками. Читать книги по электронике? Думаю, это на любителя. Опять же напрашивается принцип 80/20.  20% книг дают 80% знаний. Но эти книги еще надо найти. От себя добавлю, не тратьте зря время, если книжка по электронике вас ну никак не устраивает. Начните читать другую. И все таки, я больше склоняюсь  к практической части электроники. Электроника на практике как раз и относится к тем 20%. Вы все еще сидите? А ну-ка бегом паяльник в руки!

Как лучше всего изучать электронику?

Как лучше всего изучать электронику? Это содержательный вопрос, который следует задать аудитории Hackaday, большинство из которых, по крайней мере, уже знакомы с этой областью. Те, кто уже научился, часто могут использовать только свою собственную точку зрения - то, как они сами учились. Некоторые из вас, возможно, учили других. Я хочу изучить, что работает, а что нет.

Любители учатся иначе, чем студенты

Одно могу сказать сразу: студенты учатся иначе, чем люди, которые учатся дома.У любителей есть то преимущество, что им действительно интересно, что может не понравиться студентам. С самого начала люди учились электронике, аналоговые проекты - модели Heathkit, роботы BEAM и радиолюбители - превращались в чисто цифровые проекты.

Посмотрим правде в глаза, Arduinos понижает планку как ничто другое. Не зря скетч Blink стал эквивалентом «Hello World». Грязные дешевые и легко настраиваемые микроконтроллеры в сочетании с коммутационными платами упрощают участие любого желающего.

Однако спросите любого истинного EE, и он скажет вам, что следующие схемы подключения и подключение сенсорных плат от Sparkfun только многому учит. Вы не отказываетесь от таких терминов, как гистерезис или предвзятость, создавая что-то из унифицированных коммуникаций и коммутационных плат. Но нужно ли вам это? Если вы действительно интересуетесь электроникой и учитесь, создавая проекты Adafruit или Sparkfun, рано или поздно вы захотите сделать свои собственные коммутационные доски. Вы узнаете, как создавать собственные печатные платы, и поймете, почему все работает, а почему нет.Мне не нужно говорить вам, что в Интернете есть все ответы, которые нужны новичку, но в первую очередь должен быть интерес.

Как лучше всего учиться в классе?

В наборах для робототехники есть категория продуктов, состоящая из «учебных вездеходов», предназначенных для приобретения учителями групповыми партиями, чтобы каждый ученик или небольшая группа получали один. Эти вездеходы либо предварительно собраны, либо в основном построены - конечно, вы можете вкрутить крепления двигателя, но все печатные платы уже припаяны для вас, не более того, поверхностный монтаж.Они поставляются предварительно настроенными для множества простых задач, таких как отслеживание линии и уклонение от препятствий. Makeblock mBot является примером.

Я думаю, что это часть всей инициативы «научиться программировать», идея которой состоит в том, чтобы минимизировать сборку, чтобы максимизировать время кодирования. Поскольку пайка набора сквозных компонентов учит электронике, эти боты в основном этого не делают. Судя по всему, если есть лучший способ изучить электронику, то это не то. Однако независимо от того, какой проект преподаватель ставит перед учеником, он все равно должен вызывать какое-то увлечение.Эти роботы обеспечивают момент прохлады, который разжигает огненную бурю интереса.

Однажды я руководил классом пайки, в котором основное внимание уделялось сеткам Blinky Grids Уэйна и Лейна. Это фантастический комплект, который поможет вам создать небольшую светодиодную матрицу. Это особенно круто, потому что его можно программировать на мониторе компьютера с помощью световых датчиков, взаимодействующих с белыми и черными квадратами на веб-сайте компании. Когда мои ученики закончили свои сетки, все они работали и просматривали уникальные сообщения.Итак, , что - это выплата. Я не говорю, что кто-то из этих людей стал хакером оборудования в результате моего класса, но это чертовски ударило из елки, верно?

Возвращаясь к тому марсоходу, следует признать, что марсоход сам по себе является вознаграждением, и это только до тех пор, пока все теряют интерес. Однако у многих из этих роверов есть возможности расширения, такие как прикручивание другого датчика или изменение метода программирования - например, mBot имеет как графический интерфейс программирования, так и может быть перепрошит с помощью обычного старого загрузчика Arduino.

Читатели, поделитесь в комментариях своей точкой зрения. Как вы узнали? Как бы вы научили других?

.

«Я хочу изучать искусственный интеллект и машинное обучение. С чего начать? »| Даниэль Бурк

Я работал в Apple Store и хотел перемен. Чтобы начать создавать технологию, которую я обслуживал.

Я начал изучать машинное обучение (ML) и искусственный интеллект (AI).

Так много всего происходит. Перебор.

Каждую неделю кажется, что Google или Facebook выпускают новый вид ИИ, чтобы ускорить работу или улучшить наш опыт.

И не обращайте внимания на количество компаний, занимающихся беспилотными автомобилями.Хотя это и хорошо. Я не любитель водить машину, а дороги опасны.

Даже несмотря на то, что все это происходит, до сих пор не существует согласованного определения того, что такое искусственный интеллект.

Некоторые утверждают, что глубокое обучение можно считать ИИ, другие скажут, что это не ИИ, если оно не пройдет тест Тьюринга.

Эта нечеткость вначале сильно замедлила мой прогресс. Трудно было выучить что-то, что имеет так много разных определений.

Довольно определений.

Мы с друзьями создавали веб-стартап. Это не удалось. Мы сдались из-за отсутствия смысла. Но по ходу дела я все больше и больше слышал о машинном обучении и искусственном интеллекте.

«Компьютер учится за вас?» Я не мог поверить в это.

Я наткнулся на программу Deep Learning Nanodegree от Udacity. Веселый персонаж по имени Сирадж Раваль был в одном из промо-роликов. Его энергия была заразительна. Несмотря на то, что я не отвечал основным требованиям (я никогда раньше не писал ни строчки на Python), я подписался.

За 3 недели до даты начала курса я написал в службу поддержки Udacity по электронной почте, спрашивая, какова политика возврата. Я боялся, что не смогу пройти курс.

Мне не вернули деньги. Я прошел курс в установленные сроки. Это было сложно. Иногда действительно сложно. Мои первые два проекта были сданы с опозданием на четыре дня. Но волнение от участия в одной из самых важных технологий в мире двигало меня вперед.

Завершив курс Deep Learning Nanodegree, я гарантированно принял участие в программе Udacity AI Nanodegree, Self-Driving Car Nanodegree или Robotics Nanodegree.Все отличные варианты.

Я снова потерялся.

Классика. «Куда мне идти дальше?»

Мне нужна была учебная программа. Я заложил фундамент с помощью Deep Learning Nanodegree, теперь пришло время выяснить, что будет дальше.

Я не планировал в ближайшее время возвращаться в университет. В любом случае у меня не было 100000 долларов на получение степени магистра.

Итак, я сделал то, что делал вначале. Обратился за помощью к моему наставнику, Google.

Я начал глубокое обучение без каких-либо предварительных знаний в этой области.Вместо того, чтобы подняться на вершину айсберга искусственного интеллекта, вертолет высадил меня на вершине.

Изучив несколько курсов, я составил список из них, которые больше всего интересовали меня в Trello.

Trello - мой личный помощник / координатор курса.

Я знал, что онлайн-курсы часто бросают. Я не собирался позволять себе быть частью этого числа. У меня была миссия.

Чтобы взять на себя ответственность, я начал делиться своим опытом обучения онлайн. Я решил, что могу попрактиковаться в передаче того, что узнал, а также найти других людей, которым интересны те же вещи, что и я.Мои друзья все еще думают, что я инопланетянин, когда я начинаю одну из своих авантюр с искусственным интеллектом.

Я сделал доску Trello общедоступной и написал в блоге сообщение о своих усилиях.

Учебная программа немного изменилась с тех пор, как я ее впервые написал, но она по-прежнему актуальна. Я посещал доску Trello несколько раз в неделю, чтобы отслеживать свои успехи.

Я австралиец. И все волнения, казалось, происходили в США.

Итак, я поступил наиболее логично и купил билет в один конец. Я проучился год и решил, что пора начать применять свои навыки на практике.

Мой план состоял в том, чтобы попасть в США и получить работу.

Затем Эшли написала мне в LinkedIn: «Привет, я видела твои публикации, и они действительно классные, я думаю, тебе стоит познакомиться с Майком».

Я встретил Майка.

Я рассказал ему свою историю онлайн-обучения, как мне нравятся медицинские технологии и мои планы поехать в США.

«Возможно, тебе лучше остаться здесь на год или около того и посмотреть, что ты найдешь, я думаю, тебе бы хотелось познакомиться с Кэмерон».

Я встретил Кэмерон.

У нас был такой же разговор, о котором мы говорили с Майком.Здоровье, технологии, онлайн-обучение, США.

«Мы работаем над некоторыми проблемами со здоровьем, почему бы вам не прийти в четверг?»

Пришел четверг. Я нервничал. Но однажды кто-то сказал мне, что нервничать - это то же самое, что быть возбужденным. Я был взволнован.

Я провел день, встречаясь с командой Макса Кельзена и проблемами, над которыми они работали.

Два четверга спустя Ник, генеральный директор Athon, ведущий инженер по машинному обучению, и я пошли выпить кофе.

«Хотели бы вы присоединиться к команде?» - спросил Ник.

«Конечно», - сказал я.

Мой рейс в США был перенесен на пару месяцев, и я купил обратный билет.

Изучая онлайн, я знал, что это необычно. Все должности, на которые я претендовал, имели степень магистра или, по крайней мере, какую-то техническую степень.

У меня не было ни того, ни другого. Но у меня были навыки, которые я получил на множестве онлайн-курсов.

По пути я делилась своей работой в Интернете. Мой GitHub содержал все проекты, над которыми я работал, мой LinkedIn был разложен, и я практиковался в передаче того, что я узнал, через YouTube и статьи на Medium.

Я никогда не сдавал резюме Максу Кельсену. «Мы видели ваш профиль в LinkedIn».

Моей основной работой было резюме.

Независимо от того, учитесь ли вы онлайн или получаете степень магистра, портфолио того, над чем вы работали, - отличный способ создать скин в игре.

Навыки машинного обучения и искусственного интеллекта пользуются спросом, но это не значит, что вам не нужно их демонстрировать. Даже самый лучший продукт не будет продаваться без места на полке.

Будь то GitHub, Kaggle, LinkedIn или блог, всегда есть место, где люди смогут вас найти.Кроме того, иметь собственный уголок в Интернете - это очень весело.

Куда вы идете, чтобы научиться этим навыкам? Какие курсы самые лучшие?

Нет лучшего ответа. У каждого будет свой путь. Некоторые люди лучше учатся с помощью книг, другие - с помощью видео.

Что важнее, чем то, как вы начали, так это то, почему вы начинаете.

Начнем с того, почему.

Почему вы хотите получить эти навыки?

Хотите зарабатывать деньги?

Хотите строить вещи?

Хотите что-то изменить?

Нет правильной причины.Все действительны по-своему.

Начните с вопроса «почему», потому что «почему» важнее, чем «как». Иметь «почему» означает, что когда становится трудно, а становится трудно, у вас есть к чему обратиться. Что-то, чтобы напомнить вам, почему вы начали.

Понял почему? Хорошо. Время для некоторых сложных навыков.

Могу порекомендовать только то, что пробовал.

Я прошел курсы (в порядке):

  • Treehouse - Introduction to Python
  • DataCamp - Introduction to Python & Python for Data Science Track
  • Udacity - Deep Learning & AI Nanodegree
  • Coursera - Deep Learning by Эндрю Нг
  • быстро.ai - Часть 1, скоро будет Часть 2

Они все мирового класса. Я визуально обучаюсь. Я лучше учусь видеть, что делается. Все эти курсы так и делают.

Если вы абсолютный новичок, начните с некоторых вводных курсов Python, а когда почувствуете себя немного увереннее, переходите к науке о данных, машинному обучению и искусственному интеллекту. DataCamp отлично подходит для начинающих, изучающих Python, но желающих изучить его с упором на науку о данных и машинное обучение.

Самый высокий уровень математического образования у меня был в средней школе.Остальное я узнал через Khan Academy, так как мне это было нужно.

Существует множество различных мнений о том, сколько математики вам нужно знать, чтобы заняться машинным обучением и искусственным интеллектом. Я поделюсь своим.

Если вы хотите применить методы машинного обучения и искусственного интеллекта к решению проблемы, вам не обязательно иметь глубокое понимание математики, чтобы получить хороший результат. Такие библиотеки, как TensorFlow и PyTorch, позволяют кому-то с небольшим опытом работы с Python создавать современные модели, в то время как математика выполняется за кулисами.

Если вы хотите углубиться в исследования в области машинного обучения и искусственного интеллекта с помощью программы PhD или чего-то подобного, глубокие знания математики имеют первостепенное значение.

В моем случае я не хочу углубляться в математику и улучшать производительность алгоритма на 10%. Я предоставлю это людям умнее меня.

Вместо этого я более чем счастлив использовать доступные библиотеки и манипулировать ими, чтобы решать проблемы так, как я считаю нужным.

То, что делает на практике инженер-машиностроитель, может быть не тем, что вы думаете.

Несмотря на обложки многих статей в Интернете, это не всегда связано с работой с роботами с красными глазами.

Вот несколько вопросов, которые инженер по машинному обучению должен задавать себе ежедневно.

  • Контекст - Как можно использовать машинное обучение, чтобы узнать больше о вашей проблеме?
  • Данные - Вам нужно больше данных? В какой форме это должно быть? Что делать, если данные отсутствуют?
  • Моделирование - Какую модель вам следует использовать? Это слишком хорошо работает с данными (переоснащение)? Или почему не очень хорошо работает (не подходит)?
  • Производство - Как вы можете запустить свою модель в производство? Это должна быть онлайн-модель или она должна обновляться через определенные промежутки времени?
  • Постоянно - Что произойдет, если ваша модель сломается? Как улучшить его, добавив больше данных? Есть ли способ лучше?

Я позаимствовал их из замечательной статьи Рэйчел Томас, одной из соучредителей Fast.аи, она углубляется в полный текст.

Для подробностей я снял видео о том, чем мы обычно занимаемся в понедельник в Max Kelsen.

Нет правильного или неправильного способа попасть в ML или AI (или что-то еще).

Самое прекрасное в этой области состоит в том, что у нас есть доступ к одним из лучших технологий в мире, все, что нам нужно сделать, это научиться их использовать.

Вы можете начать с изучения кода Python (мой любимый).

Вы можете начать с изучения математического анализа и статистики.

Вы можете начать с изучения философии принятия решений.

Машинное обучение и искусственный интеллект восхищают меня, потому что они пересекаются на стыке всего этого.

Чем больше я узнаю об этом, тем больше понимаю, что мне еще есть чему поучиться. И это меня возбуждает.

Иногда я расстраиваюсь, когда мой код не запускается. Или я не понимаю концепции. Поэтому я временно сдаюсь. Я сдаюсь, позволяя себе уйти от проблемы и вздремнуть. Или пойти прогуляться.Когда я возвращаюсь, мне кажется, что я смотрю на это другими глазами. Волнение возвращается. Я продолжаю учиться. Говорю я себе. Я обучающаяся машина.

В этой области происходит столько всего, что может быть сложно начать работу. Слишком много вариантов приводит к отсутствию вариантов. Игнорируйте это.

Начинайте с того, что вас больше всего интересует, и следите за этим. Если это приведет к тупику, отлично, вы поняли, что вам неинтересно. Вернитесь назад и вместо этого сверните на другую развилку дороги.

Компьютеры умны, но они все еще не могут учиться самостоятельно.Им нужна твоя помощь.

.

10 лучших языков программирования для инженеров

Языки программирования - это команды, используемые для создания программного обеспечения. Эти языки программирования используются для кодирования и создания программного обеспечения, которое улучшит работу многих систем во всех отраслях, включая инженерные отрасли.

Есть два типа языков программирования. Первый называется «языками высокого уровня», а второй - «языками низкого уровня».

Что такое языки высокого уровня?

Это слова и / или символы, которые используются программистами для написания «исходного кода».«Они читабельны и легки для понимания. Некоторые из языков высокого уровня включают Java, PHP и C ++.

Что такое языки низкого уровня?

Они делятся на две категории - язык ассемблера и машинный язык. На ассемблере труднее читать, чем на языке высокого уровня. Хотя его трудно читать, он содержит основные инструкции для программиста. Затем этот язык используется для интерпретации и / или перевода кода и преобразования его в машинный язык - язык, содержащий группу двоичных кодов, известных процессору компьютера.Этот язык не может быть прочитан людьми; это не было разработано таким образом.

СВЯЗАННЫЕ С: 7 ЯЗЫКОВ ПРОГРАММИРОВАНИЯ, КОТОРЫЕ ВЫ ДОЛЖНЫ УЧИТАТЬСЯ ИЗУЧЕНИЕМ В 2019 ГОДУ

Почему инженерам нужно знать эти языки программирования

Изучение любого из этих 10 языков программирования, перечисленных ниже, очень важно в инженерной области. Это не только потому, что они могут быть обязательным предметом в некоторых инженерных программах, но также потому, что инженерные разработки и программные технологии идут рука об руку.

Языки программирования необходимы в жизни инженера. Все начинается в колледже и развивается на протяжении всей карьеры инженера. Инженеры-механики, инженеры-программисты, системные инженеры или архитекторы, инженеры-электронщики, помимо других отраслей, все должны использовать компьютерное кодирование или программирование программного обеспечения на рабочем месте.

Без знания того, как использовать или читать любой из 10 языков программирования, упомянутых здесь, инженер может быть более ограничен в своих возможностях трудоустройства.

Какие 10 языков программирования наиболее популярны для инженеров?

10. Objective-C

Это язык программирования, основанный на «объектах». Вот почему он известен также как объектно-ориентированный язык программирования или ООП. Он имеет стиль Smalltalk, аналогичный программированию на C.

Smalltalk был разработан для нового мира, в котором человек и компьютер работают вместе. Сначала он был разработан для образовательных целей и представляет собой объектно-ориентированный язык программирования.

9. SQL

SQL или язык структурированных запросов используется для доступа к базам данных.Это инструмент, который может изменять базы данных. С помощью SQL оператор может выполнять запросы, извлекать данные, вставлять записи, обновлять записи, удалять записи, создавать новые базы данных, создавать новые таблицы, создавать хранимые процедуры, создавать представления и устанавливать разрешения.

Инженер так много может сделать, если у него есть навыки программирования на языке SQL.

8. PHP

PHP или препроцессор гипертекста может работать в различных типах баз данных, а также в операционных системах, таких как Mac OS X, Linux, Windows, UNIX и других.

Это бесплатный язык программирования, который можно удобно загрузить с официального сайта «php.net». PHP способен на многое. Некоторые из них включают создание динамических страниц, сбор данных из форм, отправку и получение веб-сайта и / или просмотр файлов cookie и даже шифрование данных, среди многих других.

7. C #

Этот язык программирования является фундаментальным для языков программирования C и C ++. Это объектно-ориентированный язык программирования.Что приятно в нем, так это то, что его легко освоить, но в то же время он современен.

Этот язык был разработан Microsoft в рамках программы .NET. Он используется для создания эффективных программ и может быть установлен на разные типы компьютеров. Если инженер понимает, как использовать программирование на C и C ++, и тогда ему / ей понравится изучать C #.

6. JavaScript

Известный язык программирования в Интернете. Он обычно используется на веб-сайтах и ​​также известен как язык программирования HTML.

JavaScript - не сложный навык программирования. Фактически, это проще, чем большинство языков программирования. Веб-разработчики изучают этот язык программирования вместе с HTML и CSS, потому что они являются основой эстетически привлекательного веб-сайта.

5. Visual Basic .NET

Также пишется как VB.NET. Это объектно-ориентированный язык программирования с множеством парадигм. Этот язык лучше всего работает на платформе .NET Framework от Microsoft. VB.NET - это язык структурированного программирования.Он использует операторы, чтобы указать действия, которые должны быть выполнены компьютером.

Некоторые ключевые слова, используемые языком, включают «Если», «Выбрать регистр», «Цикл», «Для каждого» и «Иначе» среди других зарезервированных ключевых слов.

4. C ++

Язык программирования C ++ может работать на компьютерах с такими операционными системами, как Windows, несколько версий UNIX и Mac OS. Это язык программирования общего назначения, который также чувствителен к регистру, но имеет произвольную форму.

Он поддерживает объектно-ориентированное программирование, а также процедурное и общее.Поскольку C ++ поддерживает ООП, он также поддерживает инкапсуляцию, скрытие данных, наследование и полиморфизм.

3. Python

Это язык программирования высокого уровня, используемый для общих целей. Python делает упор на читабельность кодов. Вот почему он любит пробелы.

Python был разработан, чтобы помочь программистам в написании удобочитаемых, логичных и простых кодов как для небольших, так и для больших проектов.

2. C

C также упоминается как «K&R.Он был разработан Деннисом Ричи, но ему помогали в разработке Bell Labs и ANSI C. Это язык программирования общего назначения, поддерживающий процедурное и структурное программирование, а также рекурсию и область видимости лексических переменных. Это низкоуровневый язык программирования, который предоставляет инструкции машинам.

Некоторые программы на C написаны и / или разработаны с учетом переносимости. Это означает, что его можно переносить с одного компьютера на другой.

1.Java

Java - это совершенно другой язык программирования, нежели JavaScript. Java - это собственность Oracle. Он работает на мобильных устройствах, особенно на приложениях Android, некоторых или всех настольных приложениях, веб-приложениях, серверах, играх, базах данных и многом другом.

Java можно использовать на компьютере Linux, Raspberry Pi, Mac и, конечно же, Windows, среди прочего. Это еще один язык программирования, который легко изучить, но он также является одним из самых популярных.

Java занимает первое место в списке лучших языков программирования для инженеров.Это безопасный и мощный язык программирования, к тому же он бесплатный.

Инженеры должны воспользоваться бесплатными источниками, доступными им в Интернете, чтобы изучить один или несколько из этих 10 языков программирования. Инженерное дело - это отрасль, которая постоянно развивается в наш век новых технологий. Изучая эти языки, инженеры могут быть в курсе тенденций и изменений в отрасли и быть готовыми к любым изменениям, которые произойдут.

.

Подробное практическое руководство по передаче обучения с реальными приложениями в глубоком обучении | Автор: Дипанджан (DJ) Саркар

Людям присуща способность передавать знания между задачами. То, что мы приобретаем как знания, изучая одну задачу, мы используем таким же образом для решения связанных задач. Чем больше связаны задачи, тем легче нам передавать или перекрестно использовать наши знания. Вот несколько простых примеров:

  • Уметь ездить на мотоцикле ⮫ Научиться водить машину
  • Уметь играть на классическом пианино ⮫ Научиться играть на джазовом пианино
  • Знать математику и статистику ⮫ Изучить машинное обучение

В каждом из вышеперечисленных сценариев мы не изучаем все с нуля, когда пытаемся изучить новые аспекты или темы.Мы передаем и используем наши знания из того, что мы узнали в прошлом!

Традиционные алгоритмы машинного обучения и глубокого обучения до сих пор традиционно разрабатывались для работы изолированно. Эти алгоритмы обучены решать конкретные задачи. После изменения пространственного распределения модели необходимо перестраивать с нуля. Трансферное обучение - это идея преодоления изолированной парадигмы обучения и использования знаний, полученных для одной задачи, для решения связанных. В этой статье мы подробно рассмотрим концепции, объем и реальные приложения трансферного обучения и даже продемонстрируем некоторые практические примеры.Чтобы быть более конкретным, мы рассмотрим следующее.

  • Мотивация для трансферного обучения
  • Понимание трансферного обучения
  • Стратегии трансферного обучения
  • Трансферное обучение для глубокого обучения
  • Стратегии глубокого трансферного обучения
  • Типы
  • Типы
  • Типы
  • Приложения трансферного обучения
  • Пример 1: Классификация изображений с ограничением доступности данных
  • Пример 2: Мультиклассовая классификация детализированных изображений с большим количеством классов и меньшей доступностью данных
  • Преимущества трансфертного обучения
  • Задачи трансфертного обучения
  • Заключение и перспективы на будущее

Мы рассмотрим трансфертное обучение как общую концепцию высокого уровня, которая зародилась еще со времен машинного обучения и статистического моделирования, wever, в этой статье мы больше сосредоточимся на глубоком обучении.

Примечание: Все тематические исследования будут охватывать пошаговые детали с кодом и выходными данными. Приведенные здесь тематические исследования и их результаты основаны исключительно на реальных экспериментах, которые мы проводили, когда мы внедряли и тестировали эти модели во время работы над нашей книгой: Практическое руководство по переносу обучения с Python (подробности в конце этой статьи).

Цель этой статьи - попытаться охватить теоретические концепции, а также продемонстрировать практические примеры приложений глубокого обучения в одном месте, учитывая информационную перегрузку, которая присутствует в Интернете.Все примеры будут рассмотрены на Python с использованием keras с бэкэндом tensorflow, что идеально подходит для людей, которые являются ветеранами или только начинают работать с глубоким обучением! Заинтересованы в PyTorch? Не стесняйтесь преобразовывать эти примеры и обращаться ко мне, и я опубликую ваши работы здесь и на GitHub!

Мы уже вкратце обсуждали, что люди не изучают все с нуля и не используют и не переносят свои знания из ранее изученных областей в новые области и задачи.Учитывая повальное увлечение True Artificial General Intelligence , трансфертное обучение - это то, что, по мнению ученых и исследователей, может способствовать нашему прогрессу в направлении AGI . Фактически, Эндрю Нг , известный профессор и специалист по обработке данных, который был связан с Google Brain, Baidu, Stanford и Coursera, недавно представил в NIPS 2016 замечательный учебник под названием 'Гайки и болты по созданию приложений ИИ с использованием глубокого обучения ' , где он упомянул,

После контролируемого обучения - трансферное обучение станет следующим фактором коммерческого успеха ML

Я рекомендую заинтересованным людям ознакомиться с его интересным руководством от NIPS 2016.

Фактически, трансферное обучение - это не концепция, которая возникла только в 2010-х годах. Нейронные системы обработки информации (NIPS) 1995, семинар «Учимся учиться: консолидация и передача знаний в индуктивных системах» , как полагают, послужили первоначальной мотивацией для исследований в этой области. С тех пор такие термины, как Learning to Learn , Knowledge Consolidation и Inductive Transfer , стали взаимозаменяемыми с трансферным обучением.Неизменно разные исследователи и академические тексты дают определения из разных контекстов. В своей знаменитой книге Deep Learning Гудфеллоу и др. Рассматривают трансферное обучение в контексте обобщения. Их определение выглядит следующим образом:

Ситуация, когда то, что было изучено в одной настройке, используется для улучшения обобщения в другой настройке.

Таким образом, ключевой мотивацией, особенно с учетом контекста глубокого обучения, является тот факт, что большинство моделей, которые решают сложные проблемы, требуют большого количества данных, а получение больших объемов помеченных данных для контролируемых моделей может быть действительно затруднительным, учитывая время и усилия, необходимые для маркировки точек данных.Простой пример будет ImageNet набор данных , , который имеет миллионы изображений, относящихся к различным категориям, благодаря лет напряженной работы, начиная с Stanford!

Популярная задача ImageNet, основанная на базе данных ImageNet

Однако получить такой набор данных для каждого домена сложно. Кроме того, большинство моделей глубокого обучения очень специализированы для определенной области или даже конкретной задачи. Хотя это могут быть современные модели, с действительно высокой точностью и превосходящие все тесты, они будут применяться только на очень конкретных наборах данных и в конечном итоге будут иметь значительную потерю производительности при использовании в новой задаче, которая может быть похожей. к тому, на котором он был обучен.Это формирует мотивацию для трансфертного обучения, которое выходит за рамки конкретных задач и областей, и пытается увидеть, как использовать знания из предварительно обученных моделей и использовать их для решения новых проблем!

Первое, что следует здесь помнить, это то, что трансферное обучение - это не новая концепция, которая очень специфична для глубокого обучения. Существует резкая разница между традиционным подходом к построению и обучению моделей машинного обучения и использованием методологии, соответствующей принципам трансферного обучения.

Традиционное обучение и трансферное обучение

Традиционное обучение изолировано и происходит исключительно на основе определенных задач, наборов данных и обучения на них отдельных изолированных моделей. Не сохраняется никаких знаний, которые можно было бы перенести от одной модели к другой. При трансферном обучении вы можете использовать знания (характеристики, веса и т. Д.) Из ранее обученных моделей для обучения новых моделей и даже решать такие проблемы, как наличие меньшего количества данных для новой задачи!

Давайте разберемся с предыдущим объяснением на примере.Предположим, наша задача - идентифицировать объекты на изображениях в ограниченной зоне ресторана. Обозначим эту задачу в определенном объеме как T1 . Учитывая набор данных для этой задачи, мы обучаем модель и настраиваем ее так, чтобы она хорошо работала (обобщала) на невидимых точках данных из того же домена (ресторана). Традиционные алгоритмы машинного обучения с учителем не работают, когда у нас нет достаточного количества обучающих примеров для выполнения необходимых задач в данных областях. Предположим, теперь мы должны обнаруживать объекты на изображениях в парке или кафе (скажем, задача T2 ).В идеале мы должны иметь возможность применить модель, обученную для T1 , но на самом деле мы сталкиваемся с ухудшением производительности и моделями, которые плохо обобщаются. Это происходит по разным причинам, которые мы можем в широком смысле и вместе назвать предвзятым отношением модели к обучающим данным и предметной области.

Трансферное обучение должно позволить нам использовать знания из ранее изученных задач и применять их к более новым, связанным задачам. Если у нас есть значительно больше данных для задачи T1 , мы можем использовать ее обучение и обобщить эти знания (функции, веса) для задачи T2 (которая имеет значительно меньше данных).В случае проблем в области компьютерного зрения некоторые низкоуровневые функции, такие как края, формы, углы и интенсивность, могут использоваться в разных задачах, что позволяет передавать знания между задачами! Кроме того, как мы изобразили на предыдущем рисунке, знания из существующей задачи действуют как дополнительный ввод при изучении новой целевой задачи.

Формальное определение

Давайте теперь взглянем на формальное определение трансферного обучения, а затем воспользуемся им для понимания различных стратегий.В своей статье A Survey on Transfer Learning Пан и Ян используют предметную область, задачу и предельные вероятности, чтобы представить основу для понимания трансферного обучения. Структура определяется следующим образом:

Домен, D , определяется как двухэлементный кортеж, состоящий из пространства признаков, , и предельной вероятности, P (Χ) , где Χ - это примерная точка данных. Таким образом, мы можем представить область математически как D = {ꭕ, P (Χ)}

Здесь xᵢ представляет определенный вектор, как показано на приведенном выше изображении.Задача T , с другой стороны, может быть определена как двухэлементный кортеж пространства меток γ и целевой функции η . Целевая функция также может быть обозначена как P (γ | Χ) с вероятностной точки зрения.

Таким образом, вооружившись этими определениями и представлениями, мы можем определить трансферное обучение следующим образом, благодаря отличной статье от Себастьяна Рудера.

Сценарии

Давайте теперь рассмотрим типичные сценарии, включающие трансферное обучение, на основе нашего предыдущего определения.

.

Смотрите также