На этой странице мы собрали понятия и термины, которые помогут вам лучше ориентироваться на старте изучения нейронных сетей
Словарь
Accuracy / acc (точность) - точность (правильно классифицированных примеров ко всем примерам) как метрика оценки качества обучения сети.
adam - adaptive moment estimation, оптимизационный алгоритм, используемый для обучения сети, основная функция которого - изменение весов сети для уменьшения ошибки сети в процессе обучения. Для каждого нейрона алгоритм изменяет веса индивидуально.
argmax - метод библиотеки NumPy, возвращающий индекс максимального значения в массиве.
Back propagation - см. Метод обратного распространения ошибки.
categorical_crossentropy - Функция ошибки сети используемая при задачах многоклассовой классификации (более 2-х классов).
С++ — компилируемый, статически типизированный язык программирования общего назначения. Поддерживает такие парадигмы программирования, как процедурное программирование, объектно-ориентированное программирование, обобщённое программирование.
C++ широко используется для разработки программного обеспечения, являясь одним из самых популярных языков программирования.
CNTK - Microsoft Cognitive Toolkit — стандартизированный инструментарий для проектирования и развития сетей разнообразных видов, применяет искусственный интеллект для работы с большими объёмами данных путем глубокого обучения. Имеет архитектуру, совместимую с популярными языками и сетями, такими как, C++ и Python.
CUDA - изначально аббр. от англ. Compute Unified Device Architecture — программно-аппаратная архитектура параллельных вычислений, которая позволяет существенно увеличить вычислительную производительность благодаря использованию графических процессоров фирмы Nvidia.
cuDNN - библиотека, содержащая оптимизированные для GPU реализации сверточных и рекуррентных сетей, различных функций активации, алгоритма обратного распространения ошибки и т.п., что позволяет обучать нейронные сети на GPU в несколько раз быстрее, чем просто CUDA.
Data Mining - собирательное название, используемое для обозначения совокупности методов интеллектуального анализа данных.
Deep Learning (глубокое обучение) - совокупность методов машинного обучения основанных на построение нейронных сетей различной сложности и большой глубины (более 2-х слоев).
Dense - обозначение полносвязного слоя в нейронной сети.
Epoch - количество повторений циклов обучения для всей выборки данных.
fit - метод Keras, запускающий обучение нейронной сети.
Google Colaboratory - облачная платформа с предустановленным программным обеспечением и библиотеками (Keras, TensorFLow, Jupyter Notebook и т.д.) для проведения ресурсоемких вычислений, которую удобно использовать в том числе для обучения глубоких нейронных сетей.
GPU - графический процессор (англ. graphics processing unit) — отдельное устройство персонального компьютера или игровой приставки, выполняющее графический рендеринг.
input_dim - параметр нейронной сети, указывающий, какое количество значений будет подаваться на вход заданного слоя нейронной сети.
JSON - англ. JavaScript Object Notation, — текстовый формат обмена данными, основанный на JavaScript.
Keras - открытая нейросетевая библиотека, написанная на языке Python. Представляет собой надстройку над фреймворками Deeplearning4j, TensorFlow и Theano и нацелена на работу с сетями глубокого обучения.
Loss / функция ошибки / функция потерь нейронной сети – математическая дифференцируемая функция, характеризующая разницу между «истинным» значением целевой переменной и предсказанным нейронной сетью значением. В Keras - название параметра, передаваемого в метод compile при компиляции сети.
Machine Learning - класс методов, характерной чертой которых является не прямое решение задачи (на основе правил / формул), а обучение в процессе применения решений множества сходных задач.
MATLAB - сокращение от англ. «Matrix Laboratory», — пакет прикладных программ для решения задач технических вычислений и одноимённый язык программирования, используемый в этом пакете.
Matplotlib — библиотека на языке программирования Python для визуализации данных двумерной (2D) графикой (3D графика также поддерживается).
MNIST - сокращение от «Modified National Institute of Standards and Technology», — объемная база данных образцов рукописного написания цифр. База данных является стандартом, предложенным Национальным институтом стандартов и технологий США с целью калибрации и сопоставления методов распознавания изображений с помощью машинного обучения в первую очередь на основе нейронных сетей.
NumPy — библиотека с открытым исходным кодом для языка программирования Python. Возможности: поддержка многомерных массивов (включая матрицы); поддержка высокоуровневых математических функций, предназначенных для работы с многомерными массивами.
One hot encoding - метод преобразования категориальных данных при котором каждая категория кодируется 1 или 0, в зависимости от присутствия данной категории в конкретном примере данных. (Например для 5 категорий отсутствие всех категорий будет выглядеть как (0,0,0,0,0), присутствие только первой категории (1,0,0,0,0) и т.д.)
optimizer (функция оптимизатора) - оптимизационный алгоритм (функция), задача которого - изменение весов сети для уменьшения ошибки сети в процессе обучения.
predict - метод Keras, запускающий работу нейронной сети на предсказание / распознавание данных.
Python — высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода. Python поддерживает структурное, объектно-ориентированное, функциональное, императивное и аспектно-ориентированное программирование.
PyTorch — библиотека машинного обучения для языка Python с открытым исходным кодом, созданная на базе Torch. Используется для обработки естественного языка. Разрабатывается преимущественно группой искусственного интеллекта Facebook.
ReLU - активационная функции выполняющая простое нелинейное преобразование поданных на вход данных (x). Возвращает x, если x >0 и 0 в противном случае. Отличается высокой скоростью вычисления.
Sequential - модель в библиотеке Keras, позволяющая создать нейронную сеть прямого распространения путем последовательного добавления слоев.
Softmax - активационная функция, выполняющая нелинейное преобразование на основе математической функции: взвешенная сигмоида. Также может быть использована как функция активации для выходного слоя в задачах многоклассовой классификации. Преобразует значения в вектор вероятностей.
TensorFlow — открытая программная библиотека для машинного обучения, разработанная компанией Google для решения задач построения и тренировки нейронной сети с целью автоматического нахождения и классификации образов, достигая качества человеческого восприятия. Основной API для работы с библиотекой реализован для Python, также существуют реализации для C++, Haskell, Java, Go и Swift.
Theano - библиотека численного вычисления в Python. Вычисления в Theano выражаются NumPy-подобным синтаксисом и компилируются для эффективных параллельных вычислений как на обычных CPU, так и на GPU. В настоящее время работа над проектом прекращена.
verbose - режим вывода информации о процессе обучения нейронной сети.
XML - англ. eXtensible Markup Language, — расширяемый язык разметки. XML разрабатывался как язык с простым формальным синтаксисом, удобный для создания и обработки документов программами и одновременно удобный для чтения и создания документов человеком, с подчёркиванием нацеленности на использование в Интернете.
YAML - акроним англ. «Yet Another Markup Language» — «Ещё один язык разметки», позже — рекурсивный акроним англ. «YAML Ain't Markup Language» — «YAML — не язык разметки») — «дружественный» формат сериализации данных, концептуально близкий к языкам разметки, но ориентированный на удобство ввода-вывода типичных структур данных многих языков программирования.
Аксон - это длинный цилиндрический отросток нервной клетки (нейрит), по которому нервные импульсы идут от тела клетки (сомы) к иннервируемым органам и другим нервным клеткам.
Активационная функция / Функция активации - это функция, определяющая выходной сигнал на основе трансформации входного сигнала: выход = функция активации (вход).
Активация нейрона - это применение к нему нелинейной функции.
Архитектура сети - это совокупность значимых параметров сети, определяющих её назначение и возможности, среди которых: структура и конфигурация слоев нейронной сети а также характер взаимодействия между слоями.
Батч / batch_size - количество элементов выборки, с которыми идет работа в пределах одной итерации до изменения весов.
Библиотека – это набор готовых функций, которые позволяют нам собрать и обучить нейронную сеть без необходимости глубоко понимать математическую базу, лежащую в основе этих процессов.
Бэкенд - (англ. back-end) — программно-аппаратная часть сервиса, продукта.
Валидационная выборка – отложенный набор данных, на котором тестируется качество финальной архитектуры сети, после подбора наилучших параметров.
Взвешенная сумма - это сложение величин, предварительно умноженных на некоторое значение (т.н. вес), например 1*w1 + 2*w2, где 1 и 2 - складываемые значения, а w1 и w2 - соответствующие им веса; если w1 = 0.75, а w2 = 0.25, то взвешенная сумма будет равна 1*0.75 + 2*0.25 = 1.25
Вектор - (см. Матрица) – матрица размеров 1 на n.
Веса - это действительные числа, отражающие коэффициент связи между конкретными нейронами.
Входные данные - это данные, поступающие к нейрону.
Выделение признаков (Feature Extraction) - процесс выделения нейронной сетью различных признаков объекта (явления, процесса) в процессе её обучения.
Высокоуровневый признак - признак, объединяющий низкоуровневые признаки в группы со схожими свойствами (например, если сеть распознает кошек и собак, то "овал" - низкоуровневый признак, а "ухо" или "лапа" - высокоуровневый.
Выход нейронной сети - это итоговое значение функций активации, применённых к взвешенным суммам нейронной сети.
Генеративная нейронная сеть (генеративно-состязательная сеть) - англ. Generative adversarial network, сокращённо GAN, — алгоритм машинного обучения без учителя, построенный на комбинации из двух нейронных сетей, одна из которых (сеть G) генерирует образцы, а другая (сеть D) старается отличить правильные («подлинные») образцы от неправильных.
Так как сети G и D имеют противоположные цели — создать образцы и отбраковать образцы — между ними возникает Антагонистическая игра.
Генетический алгоритм - это эвристический алгоритм поиска, используемый для решения задач оптимизации и моделирования путём случайного подбора, комбинирования и вариации искомых параметров с использованием механизмов, аналогичных естественному отбору в природе.
Генерация - это тип задачи, при котором нейронная сеть создает контент самого разного типа, начиная с текстов, изображений и аудио, и заканчивая "раскрашиванием" черно-белых фильмов и "изменением" сезона в видеороликах.
Дендрит - разветвлённый отросток нейрона, который получает информацию через химические (или электрические) синапсы от аксонов (или дендритов и сомы) других нейронов и передаёт её через электрический сигнал телу нейрона.
Зашумленные данные - данные с наличием шума (случайных возмущений) разной степени выраженности, способными негативно повлиять на качество обучения нейронной сети. Также под словом "шум" понимают случайные признаки, не отражающие суть изучаемого явления, но которые могут повлиять на работу сети.
Интеллектуальная задача - задача, решение которой происходит не по заранее определенному, точному алгоритму, а благодаря самообучению как свойству обучающейся системы.
Итерация обучения - это часть процесса работы сети с данными, продолжительность которой равна времени обработки одного батча.
Математически, искусственный нейрон обычно представляют как некоторую нелинейную функцию от единственного аргумента — линейной комбинации всех входных сигналов. Данную функцию называют функцией активации или функцией срабатывания, передаточной функцией.
Классификация - тип задачи, при котором нейронная сеть относит тот или иной объект к одному из классов на основе анализа его признаков. Бинарная классификация - классификация с двумя классами. Multilabeling – вид классификации, при котором классифицируемый объект может относится более чем к одному классу одновременно.
Кластеризация / Обучение без учителя - тип задачи, при котором происходит разбиение выборки на группы схожих объектов, при этом испытуемая система спонтанно обучается выполнять поставленную задачу без вмешательства со стороны экспериментатора или среды.
Компиляция сети - специализированная команда в библиотеке Keras, которая финализирует все изменения в архитектуре сети, после чего сеть готова к обучению с помощью команд fit / fit_generator.
Максимум глобальный — максимум (максимальное значение функции), наблюдающееся на всей области определения функции. Глобальный максимум является максимальным среди всех локальных максимумов функции.
Максимум локальный - это максимальное значение функции на заданном множестве.
Матрица — математический объект, записываемый в виде прямоугольной таблицы, которая представляет собой совокупность строк и столбцов, на пересечении которых находятся её элементы.
Метод градиентного спуска - оптимизационный алгоритм для нахождения локального минимума функции, который изменяет все веса сети на значение пропорциональное вкладу данного веса в ошибку (в настоящее время используется модификация метода SGD – стохастический градиентный спуск).
Метод обратного распространения ошибки (Back Propagation) - модификация метода классического градиентного спуска, метод обновления весов нейронной сети, при котором распространение сигналов ошибки происходит от выходов сети к её входам, в направлении, обратном прямому распространению сигналов в обычном режиме работы.
Минимум глобальный — минимум (минимальное значение функции), наблюдающееся на всей области определения функции. Глобальный минимум является минимальным среди всех локальных минимумов функции.
Минимум локальный - это минимальное значение функции на заданном множестве.
Нейромедиаторы - биологически активные химические вещества, посредством которых осуществляется передача электрохимического импульса от нервной клетки через синаптическое пространство между нейронами, а также, например, от нейронов к мышечной ткани или железистым клеткам.
Нелинейная функция – функция, которую нельзя выразить в линейном виде: у=ах+b.
Низкоуровневый признак - наиболее элементарный признак, характеризующий объект (например, если сеть распознает кошек и собак, то "ухо" или "лапа" - это более высокоуровневые признаки, а "овал" - более низкоуровневый.
Нормализация данных - одна из форма предварительной обработки данных, цель которой заключается в том, чтобы привести их к виду, наиболее отвечающему характеру их дальнейшего использования. Типичная нормализация - это "выравнивание" данных для приведения их значений к диапазону от 0 до 1.
Обучающая выборка - данные, на которых происходит обучение нейронной сети.
Обучение с учителем — один из способов машинного обучения, в ходе которого испытуемая система обучается с помощью примеров «стимул-реакция». Между входами и эталонными выходами (стимул-реакция) может существовать некоторая зависимость, но она неизвестна. Известна только конечная совокупность прецедентов — пар «стимул-реакция», называемая обучающей выборкой.
На основе этих данных требуется построить модель отношений стимул-реакция, пригодных для прогнозирования, то есть построить алгоритм, способный для любого объекта выдать достаточно точный ответ.
Обучение без учителя - см. Кластеризация.
Обучение с подкреплением - англ. reinforcement learning, — один из способов машинного обучения, в ходе которого испытуемая система обучается, взаимодействуя с некоторой средой. Обучение происходит за счет получения/не получения награды от среды в процессе взаимодействия.
Поверхность ошибки - это геометрическая форма функции потерь, вычисляемая в каждой точке.
Полносвязная нейронная сеть - это сеть, в которой каждый нейрон связан со всеми остальными нейронами, находящимися в соседних слоях.
Последовательная сеть прямого распространения - FFNN (Feed-Forwarded Neural Net), нейронная сеть, в которой все связи направлены только от входа сети к ее выходу (без операций распараллеливания или циклов).
Предварительная обработка данных - важный шаг в процессе интеллектуального анализа данных. Результатом предварительной обработки данных является конечный тренировочный набор.
Принцип рецептивных полей - это биологический принцип, при котором множество сенсорных рецепторов образуют синапсы c единственным нейроном и они совместно формируют рецептивное поле этого нейрона.
Прогнозирование временных рядов - это тип задачи, при котором обладая упорядоченным по времени рядом значений, нам нужно понять, какие значения будут идти в нем дальше.
Регрессия - задача оценки истинного (числового) значения некоторой независимой переменной (выход нейронной сети) от совокупности зависимых переменных (вход сети).
Рекуррентная нейронная сеть - это сеть с памятью, хранящая информацию о том, что в ней происходило в прошлые итерации обучения. Достигается это благодаря тому, что каждый нейрон в такой сети имеет связь с самим собой.
Сверточная нейронная сеть - это сеть, работающая по принципу рецептивных полей суть которого заключается в том, что каждый нейрон последующего следующего слоя "смотрит" на небольшой кусочек (например, 3 на 3 пикселя) предыдущего слоя.
Сеть прямого распространения (Feedforward) - это сеть, в которой все связи направлены строго от входных нейронов к выходным.
Сигмоидальные функции - функции, входящие в семейство функций класса Сигмоид. Сигмоида - это гладкая монотонная возрастающая нелинейная функция, имеющая форму буквы «S», которая часто применяется для «сглаживания» значений некоторой величины.
Синапс - место контакта между двумя нейронами или между нейроном и получающей сигнал эффекторной клеткой. Служит для передачи нервного импульса между двумя клетками, причём в ходе синаптической передачи амплитуда и частота сигнала могут регулироваться.
Слой нейронной сети - группа нейронов, находящихся на одном уровне иерархии имеющих общий вход / выход и функцию активации.
Скрытый слой - слой нейронной сети, находящийся между её входным и выходным слоями.
Среднеквадратичная ошибка - вариант наиболее часто используемой функции потерь (особенно в задачах регрессии), вычисляется как квадрат разницы между «истинным» значением целевой переменной и предсказанным сетью, усредняется в рамках одного batch_size.
Тестовая выборка - данные, на которых идет проверка качества работы ранее обученной сети.
Тождественная активационная функция - функция, при которой f(x) = x, т.е. функция никак не преобразует аргумент.
Хевисайда функция - функция, равная нулю для отрицательных значений аргумента и единице — для положительных.
Если вы хотите освоить написание нейронных сетей на Python, ознакомьтесь с подробностями о нашем курсе «Data science и нейронные сети»
КУРС «DATA SCIENCE И НЕЙРОННЫЕ СЕТИ» старт 19 июля / стоимость от 39.900 рублей Узнайте подробности и оставьте заявку