Искусственный интеллект & Машинное обучение

Разделы сайта


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

Курс Эндрю Ына Машинное Обучение в Стэнфордском университете (CS229 - ML)
Курсы, учебные пособия и аналитические статьи по анализу данных и машинному обучению
Справочные пособия для изучения языка Python. NumPy.


Теория вероятностей и математическая статистика


Какую программу или код можно назвать самыми сложными из когда-либо написанных?

Курсы, учебные пособия и аналитические статьи по анализу данных и машинному обучению

  • Открытый курс OpenDataScience по анализу данных и машинному обучению.
  • Курс Learning From Data (Introductory Machine Learning) Калифорнийского технологического института (Caltech).
  • Курс "CS229 - Machine Learning" Стэнфордского университета.
  • Курс "Theories of Deep Learning (STATS 385)" Стэнфордского университета.
  • Онлайн учебник "Deep Learning" Массачусетского технологического института. Авторы: Ian Goodfellow, Yoshua Bengio, Aaron Courville
  • Intel® AI Academy. Академия искусственного интеллекта Интел.
  • Введение в машинное обучение с tensorflow.
  • 36 материалов о нейросетях: книги, статьи и последние исследования от Neurodata Lab.
  • Капсульные сети. Исследователи представили альтернативу традиционным нейронным сетям. Источник: MIT Technology.
  • Подборка открытых датасетов для машинного обучения.
  • Курс Эндрю Ына Машинное Обучение в Стэнфордском университете (CS229 - Machine Learning)

    Определение термина Машинное Обучение от Артура Самуэля: "the field of study that gives computers the ability to learn without being explicitly programmed", т.е. "область исследования, которая дает компьютерам возможность учиться без явного программирования".

    Определение термина Машинное Обучение от Тома Митчелла: "A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.", т.е. "говорят, что компьютерная программа учится на опыте E по отношению к некоторому классу задач T и измерению производительности P, если ее производительность при выполнении задач в T, измеренная P, улучшается с опытом E".

    Пример: игра в шашки. E = опыт, полученный от многочисленных партий. T = задача игры в шашки. P = вероятность того, что программа выиграет следующую игру.

  • GNU Octave
  • Supervised learning. CS229 Lecture notes by Andrew Ng.
  • Целью моделей "Обучение с учителем" (Supervised learning) является поиск параметров (весов), которые минимизируют функцию потерь (Cost function). По размерности независимой переменной $x$ можно выделить однофакторные (univariable) и многофакторые (multivariable) модели. Если независимая переменная $x^{(i)}$ является скалярным значением, то имеем одинарную (univariate) модель. Когда независимая переменная является многомерной, то есть представлена вектором, получаем множественную (multivariate ) модель. В последующих примерах, это поиск $\theta_n$ для каждой независимой переменной $x_n$ с использованием линейной регрессии. Отличная статья с примерами кода на Python: Линейные модели: простая регрессия. Начало этой статьи с описанием многообразия линейных моделей здесь .

    Определение термина Cost function (loss function, error function, функция потерь) - это мера того, насколько ошибочна модель с точки зрения ее способности оценивать взаимосвязь между $\theta$ и $y$. Обычно это выражается разницей или расстоянием между прогнозируемым и фактическим значением искомого параметра: $$J(\theta) =\frac{1}{2m}\sum \limits_{i=1}^{m} \left(h_\theta(x^{(i)})-y^{(i)}\right)^2$$ где $J(\theta) =$ $J(\theta_0, \theta_1,\theta_2, ..., \theta_n)$;
    $h_\theta(x)=$ $\theta_0+\theta_1 x_1+\theta_2 x_2+...+\theta_n x_n$.
    Если сделать так, что $x_0=1$, то $h_\theta(x)$ можно записать как $\sum\limits_{i=1}^{n} \theta_i x_i$ $=\theta^Tx$. Соответственно лучший код на Octave для этого задания:

    computeCostMulti.m :

    function J = computeCostMulti(X, y, theta)
                  
      %   COMPUTECOSTMULTI Compute cost for linear regression with multiple variables
      %   J = COMPUTECOSTMULTI(X, y, theta) computes the cost of using theta as the
      %   parameter for linear regression to fit the data points in X and y
    
      %   Initialize some useful values
      m = length(y); % number of training examples
    
      %   You need to return the following variables correctly 
      J = 0;
    
      % ====================== YOUR CODE HERE ======================
      %   Instructions: Compute the cost of a particular choice of theta
      %               You should set J to the cost.
    
      J = (1/(2*m))*(sum(((X*theta)-y).^2));
    
      % =========================================================================
    
    end

    Про назначение коэффициента $\frac{1}{2m}$ в функции потерь можно прочитать в ответах на следующие вопросы: 1. Почему в функции потерь (cost function) используется формула средней квадратичной ошибки (mean squared error, MSE)?, 2. Зачем нужно делить на $2m$?, 3. Функция потерь (cost function) в Методе наименьших квадратов (МНК, Ordinary Least Squares, OLS) регрессионного анализа.

    Определение термина Gradient descent (Градиентный спуск) - метод нахождения локального экстремума (минимума или максимума) функции с помощью движения вдоль градиента. $$\theta_j := \theta_j - \alpha \frac{\partial}{\partial \theta_j} J(\theta)$$ где $j=0, 1, 2...n$, а $n$ - количество шагов, необходимых для вычисления оптимального значения $\theta$;
    $\alpha$ - шаг метода Градиентный спуск, скорость обучения. Основное правило: при каждом шаге значение $\theta_j$ должно уменьшаться, поэтому значение $\alpha$ не должно быть слишком большим. Но если значение $\alpha$ очень маленькое, то метод будет работать очень долго. Поэтому всегда требуется искать золотую середину.
    $\frac{\partial}{\partial \theta_j} J(\theta)$ - частная производная, которая равна $\frac{\partial}{\partial \theta_j} \frac{1}{2m}\sum \limits_{i=1}^{m} \left(h_\theta(x^{(i)})-y^{(i)}\right)^2$ = $2 \cdot \frac{1}{2m} \left(h_\theta(x^{(i)})-y^{(i)}\right) \cdot \frac{\partial}{\partial \theta_j} \left(h_\theta(x^{(i)})-y^{(i)}\right)$ = $\frac{1}{m} \left(h_\theta(x^{(i)})-y^{(i)}\right) \cdot \frac{\partial}{\partial \theta_j} \left(\sum \limits_{i=1}^{m} \theta_i x^{(i)}_j - y^{(i)}\right)$ = $\frac{1}{m} \left(h_\theta(x^{(i)})-y^{(i)}\right) x^{(i)}_j$, в итоге получаем: $$\theta_j := \theta_j + \alpha \frac{1}{m} \left(y^{(i)}-h_\theta(x^{(i)})\right) x^{(i)}_j$$

    Код на Octave для заданий второй недели по определению шага градиентного спуска: theta = theta -((1/m) * ((X * theta) - y)' * X)' * alpha.

    gradientDescentMulti.m :

    function [theta, J_history] = gradientDescentMulti(X, y, theta, alpha, num_iters)
                    
      %   GRADIENTDESCENTMULTI Performs gradient descent to learn theta
      %   theta = GRADIENTDESCENTMULTI(x, y, theta, alpha, num_iters) updates theta by
      %   taking num_iters gradient steps with learning rate alpha
    
      % Initialize some useful values
      m = length(y); % number of training examples
      J_history = zeros(num_iters, 1);
    
      for iter = 1:num_iters
    
      % ====================== YOUR CODE HERE ======================
      % Instructions: Perform a single gradient step on the parameter vector
      %               theta. 
      %
      % Hint: While debugging, it can be useful to print out the values
      %       of the cost function (computeCostMulti) and gradient here.
      %
    
      %%%%%%%% CORRECT %%%%%%%%%%   
      error = (X * theta) - y;
      theta = theta - ((alpha/m) * X'*error);
      %%%%%%%%%%%%%%%%%%%%%%%%%%%
    
      % ============================================================
    
      % Save the cost J in every iteration    
      J_history(iter) = computeCostMulti(X, y, theta);
    
      end
    end

    Если features (признаки) отличаются на порядки, то их масштабирование существенно ускоряет работу метода градиентного спуска. Эта процедура называется Feature scaling.

    featureNormalize.m :

    function [X_norm, mu, sigma] = featureNormalize(X)
                        
      %   FEATURENORMALIZE Normalizes the features in X 
      %   FEATURENORMALIZE(X) returns a normalized version of X where
      %   the mean value of each feature is 0 and the standard deviation
      %   is 1. This is often a good preprocessing step to do when
      %   working with learning algorithms.
    
      %   You need to set these values correctly
      X_norm = X;
      mu = zeros(1, size(X, 2));
      sigma = zeros(1, size(X, 2));
    
      % ====================== YOUR CODE HERE ======================
      % Instructions: First, for each feature dimension, compute the mean
      %               of the feature and subtract it from the dataset,
      %               storing the mean value in mu. Next, compute the 
      %               standard deviation of each feature and divide
      %               each feature by it's standard deviation, storing
      %               the standard deviation in sigma. 
      %
      %               Note that X is a matrix where each column is a 
      %               feature and each row is an example. You need 
      %               to perform the normalization separately for 
      %               each feature. 
      %
      % Hint: You might find the 'mean' and 'std' functions useful.
      %       
    
      mu = mean(X);
      sigma = std(X);
      X_norm = (X - mu)./sigma;
    
      % ============================================================
    end

    Помимо градиентного спуска можно использовать метод нормальных уравнений (the normal equations). Вот пост про этот метод.

    normalEqn.m :

    function [theta] = normalEqn(X, y)
      
      %   NORMALEQN Computes the closed-form solution to linear regression 
      %   NORMALEQN(X,y) computes the closed-form solution to linear 
      %   regression using the normal equations.
    
      theta = zeros(size(X, 2), 1);
    
      % ====================== YOUR CODE HERE ======================
      % Instructions: Complete the code to compute the closed form solution
      %               to linear regression and put the result in theta.
      %
    
      % ---------------------- Sample Solution ----------------------
    
      theta = pinv(X'*X)*X'*y;
    
      % -------------------------------------------------------------
      % ============================================================
    end

    Решение заданий на Python: John Wittenauer;

    Теория вероятностей и математическая статистика

    Описательная статистика (Descriptive statistics )

    Descriptive statistics are a collection of measurements of two things: location and variability. Location tells you the central value of your variable (the mean is the most common measure). Variability refers to the spread of the data from the center value (i.e. variance, standard deviation).

    Statistics is basically the study of what causes variability in the data. Популяция (или генеральная совокупность) – это вся группа объектов, которая нас интересует. Выборка (или выборочная совокупность) – это подмножество (часть) популяции. Основной вопрос статистики – это как на основании выборки сделать выводы обо всей популяции? Если наша выборка состоит из n наблюдений X1, ..., Xn, то выборочное среднее (или «среднее по выборке») равно $\overline{X} = \frac{\sum_{i=1}^{n} X_i}{n}$. Поскольку все наблюдения X1, …, Xn имеют математическое ожидание $\mu$, среднее этих наблюдений (т.е., выборочное среднее) тоже имеет математическое ожидание $\mu$: $E\left( \overline{X} \right) =$ $\left( \frac{\sum_{i=1}^{n} X_i}{n} \right) =$ $\frac{\sum_{i=1}^{n} E\left( X_i \right)}{n} =$ $E\left( X_i \right) =$ $\mu$.

    правило трех сигм

    Краткое введение в Описательную статистику в прилагаемом pdf на русском языке, а также на английском от Принстонского университета.

    Понятие Constructs и еще ссылка. С разбора этого понятия начинаются многие курсы по анализу данных.

    Основные меры центральной тенденции - число, служащее для описания множества значений одним-единственным числом.

    Основные понятия описательной статистики на Wolfram MathWorld.

    Математическое ожидание (а также среднее, mean, expected value, EV, M(X), $\mu_x$) случайной величины X с функцией вероятности P(X = x) есть $E (X) = \sum {x*P(X = x)}$, где суммирование ведется по всем возможным х. Поскольку P(X = x) это вероятность, она всегда находится между 0 и 1: 0 ≤ P(X = x) ≤ 1 для любого х. Кроме того, если мы просуммируем P(X = x) для всех возможных значений x, мы получим 1. Математическим ожиданием дискретной случайной величины называют сумму произведений всех ее возможных значений на их вероятности: $E(X) =$ $M(X) = \sum \limits_{n=1}^{\infty}x_i p_i$. Из определения следует, что математическое ожидание дискретной случайной величины есть неслучайная (постоянная) величина! Вероятностный смысл: Математическое ожидание приближенно равно (тем точнее, чем больше число испытаний) среднему арифметическому наблюдаемых значений случайной величины: $\overline{X} \simeq E(X)$. Происхождение термина "математическое ожидание" связано с начальным периодом возникновения теории вероятностей (XVI-XVII вв.), когда область ее применения ограничивалась азартными играми. Игрока интересовало среднее значение ожидаемого выигрыша, или, иными словами, математическое ожидание выигрыша. Математическим ожиданием непрерывной случайной величины X, возможные значения которой принадлежат отрезку [a, b], называют определенный интеграл $M(X) =$ $E(X) = \int\limits_a^b xf(x)\,dx$. А если возможные значения принадлежат всей оси Ox, то $M(X) =$ $E(X) = \int\limits_{-\infty}^{\infty} xf(x)\,dx$. Здесь можно найти очень наглядное визуальное представление понятия "математическое ожидание" на примере игральной кости.

    Стандартная ошибка среднего в математической статистике на Wiki.

    Нормальным называют распределение вероятностей непрерывной случайной величины, которое описывается плотностью $f(x) =\frac{1}{\sigma \sqrt{2\pi}} e^{-\frac{(x-\mu)^2}{2\sigma^2}}$, где $\mu$ есть математическое ожидание, а $\sigma$ - среднее квадратическое отклонение нормального распределения. При вычислении вероятностей, связанных с нормальным распределением, мы используем стандартизацию: если $Х\sim(\mu, \sigma^2)$, то $(Х-\mu)/\sigma \sim N(0, 1)$ – то есть, преобразованная случайная величина $Z=(Х-\mu)/\sigma$ имеет «стандартное нормальное распределение» - со средним 0 и стандартным отклонением 1. Случайная величина Z называется «стандартной нормальной величиной». Значение Z ( Z-score, Z-оценка) говорит нам о числе стандартных отклонений, в которых X лежит от своего среднего. Standard normal table. Стандартным нормальным распределением называется нормальное распределение с математическим ожиданием $\mu = 0$ и стандартным отклонением $\sigma = 1$. Функция плотности стандартного нормального распределения: $f(x) =\frac{1}{\sqrt{2\pi}} e^{-\frac{z^2}{2}}$.

    Центральная предельная теорема (ЦПТ): сумма большого числа как угодно распределенных независимых случайных величин распределена асимптотически нормально, если только слагаемые вносят равномерно малый вклад в сумму. Пусть X1, ..., Xn, ... - бесконечная последовательность независимых одинаково распределённых случайных величин, имеющих конечное математическое ожидание $\mu$ и дисперсию $\sigma^2$. Пусть $S_n = \sum \limits_{i=1}^{n} X_i$ и $N(0,1)$ - нормальное распределение с параметрами $\mu=0$, $\sigma^2=1$. Тогда $\frac{S_n-\mu n}{\sigma \sqrt{n}} \rightarrow N(0,1)$ по распределению при $n \to \infty$. Обозначив символом $\overline{X}$ выборочное среднее первых n величин, то есть $\overline{X}=\frac{1}{n} \sum \limits_{i=1}^{n} X_i $, мы можем переписать результат центральной предельной теоремы в следующем виде: $\frac{\overline{X}-\mu}{\sigma \sqrt{n}} \rightarrow N(0,1)$ по распределению при $n \to \infty$. Central limit theorem на Wiki, а также в блоге Rajesh Singh. Доказательства теоремы от CS at U of T и еще одно от UC Berkeley.

    Упрощенное определение ЦПТ: если размер случайной выборки n достаточно велик, то нам не важно, какой формы распределение в популяции. Независимо от этого, выборочное среднее будет распределено по нормальному закону! Для практических целей, размер выборки n≥30 достаточен для того, чтобы выборочное среднее было распределено нормально. Рассмотрим случайную выборку размера n≥30 из любой популяции (т.е., распределения любой формы) со средним $\mu$ и стандартным отклонением $\sigma$. Тогда выборочное среднее $\overline{X}$ распределено по нормальному закону со средним $\mu$ и стандартным отклонением $\frac{\sigma}{\sqrt{n}}$: $\overline{X}\sim N\left(\mu, \frac{\sigma^2}{n}\right)$.

    Классические учебники:

  • PH525x series - Biomedical Data Science.
  • Теория вероятностей и математическая статистика. Онлайн книга написана на основе курса лекций, прочитанного А.Д. Манита на факультете наук о материалах МГУ. Содержит базовые разделы теории вероятностей и математической статистики.
  • Кибзун А.И. Теория вероятностей и математическая статистика. Базовый курс с примерами и задачами. Физматлит, 2002.
  • Гмурман В.Е. Теория вероятностей и математическая статистика (9-е изд.). М.: Высшая школа, 2003
  • Учебники по Теории вероятностей и математической статистики с EqWorld
  • Интернет-ресурсы:

  • shinyapps.io - Logistic regression
  • onlinestatbook.com - Online Statistics Education: An Interactive Multimedia Course of Study
  • Seeing Theory. Визуальное представление базовых понятий теории вероятностей и математической статистики.
  • desmos.com - онлайн-сервис, который очень просто позволяет создавать графики по формуле функции.
  • Справочные пособия для изучения языка Python. NumPy.

    Какую программу или код можно назвать самыми сложными из когда-либо написанных?

    Оригинал. Перевод на хабре:

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

    Это программа – компьютерный червь. Червь был написан, судя по всему, между 2005 и 2010 годами. Поскольку этот червь является таким сложным, я могу дать лишь общее описание того, что он делает.

    Сначала червь появляется на USB диске. Кто-то мог найти диск, лежащий на земле, получить его по почте и заинтересоваться его содержанием. Как только диск вставлялся в компьютер c Windows PC, без ведома пользователя, червь автоматически запускал себя и копировал на этот компьютер. Существовало как минимум три способа, с помощью которых он мог себя запустить. Если не работал один, он пробовал другой. Как минимум два из этих методов запуска были абсолютно новыми и оба использовали две независимых, секретных ошибки в Windows о которых никто не знал до того момента, как появился этот червь.

    Как только червь запускается на компьютере, он пытается получить права администратора. Его не сильно беспокоит установленное антивирусное ПО – он может игнорировать большинство таких программ. Затем, в зависимости от того, на какой версии Windows он работает, червь попробует один из двух ранее неизвестных методов получения прав администратора на компьютере. Как и ранее, до появления этого червя никто не знал об этих скрытых уязвимостях.

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

    Затем червь проверяет, может ли он выйти в Интернет. Если может, он пытается посетить сайты www.mypremierfutbol.com или www.todaysfutbol.com. В то время эти серверы были в Малайзии и Дании. Он открывает зашифрованный канал связи и сообщает этим серверам, что новый компьютер успешно захвачен. Зачем червь автоматически обновляет себя до самой новой версии.

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

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

    Червь, о котором мы говорим очень сложный. И мы ещё даже не начали.

    После этого червь начинает использовать два недавно обнаруженных бага в Windows. Один баг связан с сетевыми принтерами, а другой – с сетевыми файлами. Червь использует эти баги, чтобы установить себя по локальной сети на все другие компьютеры в офисе.

    Затем червь начинает искать конкретное ПО, разработанное Siemens для автоматизации крупных промышленных машин. Как только он находит его, он (как вы уже догадались) использует ещё один ранее неизвестный баг, чтобы скопировать себя в программируемую логику промышленного контроллера. Как только червь поселился в этом компьютере, он остаётся там навсегда. Никакое количество замен или «дезинфекции» компьютера не поможет избавиться от него.

    Червь ищет прикреплённые промышленные электрические моторы от двух конкретных компаний. Одна из этих компаний в Иране, а другая в Финляндии. Моторы, которые он ищет, называются «частотно-регулируемые приводы». Они используются для управления промышленными центрифугами. С помощью центрифуг можно очистить множество химических элементов.

    Например, уран.

    Теперь, поскольку червь получил полный контроль над центрифугами, он может сделать с ними всё, что захочет. Он может их все отключить. Он может немедленно все их уничтожить – достаточно крутить их на максимальной скорости до тех пор, пока они не разлетятся как бомбы, убив всех, кто по случайности оказался рядом.

    Но нет. Это сложный червь. И у червя есть другие планы.

    Как только он захватил все центрифуга в твоем заводе… червь просто засыпает.

    Проходят дни. Или недели. Или секунды.

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

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

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

    Центрифуги не любят работать слишком быстро или слишком медленно. И камни им тоже не нравятся.

    Но у червя остался последний трюк. И он гениален.

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

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

    А теперь представьте, что вы ответственны за очистку урана с помощью этого крупного промышленного завода. И вроде бы всё работает хорошо. Может двигатели звучат немного странно, но цифры на компьютере показывают, что моторы центрифуг работают так, как и положено.

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

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

    Но центрифуги бы всё равно ломались. И у вас даже не было возможности узнать почему. Со временем, под вашим надзором, около 1000 центрифуг ломаются или отключаются. Вы сходите с ума в попытках выяснить, почему всё работает не так, как планировалось. Именно это и произошло на самом деле

    Вы никогда не будет ожидать, что все эти проблемы были созданы компьютерным червем, самым хитрым и умным компьютерным червем в истории, написанным какой-то невероятно секретной командой с неограниченным количеством денег и времени. Червь был разработан только с одной целью: пройти через все известные способы цифровой защиты и уничтожить ядерную программу вашей страны так, чтобы его не поймали. Создать программу, которая могла бы сделать ОДНУ из этих вещей само по себе маленькое чудо. Создать программу, которая может делать ВСЁ это и много другое…

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


    Архитектуры нейронных сетей

    Архитектуры нейронных сетей

    Перевод статьи "Зоопарк архитектур нейронных сетей" и пояснения к представленной выше иконографике.

    Основы математики (линейная алгебра и математический анализ) для машинного обучения

    Линейная алгебра




    Предел последователь- ности. Предел функции одной переменной. Замечательные пределы.
    Решение сложных задач на нахождение предела (без применения правила Лопиталя и формулы Тейлора).
    Специальные функции




    Школьные математические олимпиады


    Линейная алгебра.

    Специальные функции

    Предел последовательности. Предел функции одной переменной. Замечательные пределы.

    Решение сложных задач на нахождение предела (без применения правила Лопиталя и формулы Тейлора).

    Свойства пределов:
    {01} $\lim_{n\to b} a^{f(x)} = a^{\lim_{n\to b} f(x)}$ при a > 0;
    {04} $\lim_{x\to a} C = C = const$
    {09} $\lim_{x\to a} {\left({f(x)}+{f(y)}\right)}$ $=$ $\lim_{x\to a} {f(x)} + \lim_{x\to a} {f(y)}$
    {10} $\lim_{x\to a} C {f(x)}= C \lim_{x\to a} {f(x)}$
    Замечательные пределы:
    {02} $\lim_{x\to 0} \frac{\sin x}{x}=1$ Первый замечательный предел
    {03} $\lim_{x\to\infty} \left({1}+\frac{1}{x}\right)^x=e$ или $\lim_{x\to 0} \left({1}+{x}\right)^{\frac{1}{x}}=e$ Второй замечательный предел
    {05} $\lim_{x\to 0} \frac{a^x-1}{x}= \ln a$
    {12} $\lim_{x\to 0} \frac{e^x-1}{x}= 1$
    Свойства логарифмов:
    {06} $e^{\ln x}=x$
    {07} $\ln {x^p}=p\ln x$
    {08} $\ln \frac{x}{y} =\ln x -\ln y$
    {11} $\ln {x}{y} =\ln x +\ln y$
    Пример №1: $\lim_{x\to 0} \left(\frac{\cos x}{1+\sin x}\right)^\frac{1}{x}$ = применяя: $a^{-n}=\frac{1}{a^n}$, то = $\lim_{x\to 0} \left(\frac{1+\sin x}{\cos x}\right)^{-1\frac{1}{x}}$ = $\lim_{x\to 0} \left(\frac{1}{\cos x}+\frac{x*\sin x}{\cos x*x}\right)^{-1\frac{1}{x}}$ = применяя {02} = $\lim_{x\to 0} \left(\frac{1}{\cos x}+\frac{x}{\cos x}\right)^{-1\frac{1}{x}}$ = поскольку: $\cos 0=1$, то = $\lim_{x\to 0} \left({1}+{x}\right)^{-1\frac{1}{x}}$ = $\lim_{x\to 0} \left({1}+{x}\right)^{\left(\frac{1}{x}\right)^{-1}}$ = применяя {03} = $\lim_{x\to 0} e^{-1}$ = применяя {04} =$\frac{1}{e}$
    Пример №2: $\lim_{x\to 3} \frac{x^3-3^x}{x-3}$ = пусть y=x-3 == x=y+3, тогда = $\lim_{y\to o} \frac{(y+3)^3-3^{(y+3)}}{y+3-3}$ = $\lim_{y\to o} \frac{(y+3)^3-3^y*3^3}{y}$ = $\lim_{y\to o} {\left(\frac{(y+3)^3}{y}-\frac{3^y*27+27-27}{y}\right)}$ = применяя $(a+b)^3=a^3+3a^2b+3ab^2+b^3$ = $\lim_{y\to o}$ ${\left(\frac{y^3+3y^23+3y3^2+3^3}{y}-\frac{27}{y}-\frac{27(3^y-1}{y}\right)}$ = применяя {05} = $\lim_{y\to o} {\left({y^2+9y+27}-{27\ln 3}\right)}$ = $27-{27\ln 3}$
    Пример №3: $\lim_{x\to 0} \frac{2^x-3^x}{x}$ = {06}&{07} ⇒ $\lim_{x\to 0} \frac{e^{xln2}-e^{xln3}}{x}$ = $\lim_{x\to 0} \frac{e^{x\ln2}-1-(e^{x\ln3}-1)}{x}$ = $ln2×\lim_{x\to 0} \frac{e^{x\ln2}-1}{x\ln2}$ $-$ $ln3×\lim_{x\to 0}\frac{(e^{x\ln3}-1)}{x\ln3}$ = {09} ⇒$\ln2-\ln3$ = $\ln\frac{2}{3}$
    Пример №4: $\lim_{x\to 0} {\left(\frac{a^x+b^x}{2}\right)}^{\frac{1}{x}}$ = $\lim_{x\to 0} \left(\frac{a^xb^x\left(\frac{1}{a^x}+\frac{1}{b^x}\right)}{2}\right)^{\frac{1}{x}}$ = $\lim_{x\to 0} ab{\left(\frac{1}{2a^x}+\frac{1}{2b^x}\right)}^{\frac{1}{x}}$ = {10}⇒ $ab\lim_{x\to 0} {\left(\frac{a^{-x}}{2}+\frac{b^{-x}}{2}\right)}^{\frac{1}{x}}$ = $ab\lim_{x\to 0} {\left({\frac{-x}{2}}{\left(\frac{a^{-x}}{-x}+\frac{b^{-x}}{-x}\right)}\right)}^{\frac{1}{x}}$ = $ab\lim_{x\to 0}$ ${\left({\frac{-x}{2}}{\left(\frac{a^{-x}+1-1}{-x}+\frac{b^{-x}+1-1}{-x}\right)}\right)}^{\frac{1}{x}}$ = $ab\lim_{x\to 0}$ ${\left({\frac{-x}{2}}{\left(\frac{a^{-x}+1-1}{-x}+\frac{b^{-x}+1-1}{-x}\right)}\right)}^{\frac{1}{x}}$ = $ab\lim_{x\to 0}$ ${\left({\frac{-x}{2}}{\left(\frac{a^{-x}-1}{-x}+\frac{1}{-x}+\frac{b^{-x}-1}{-x}+\frac{1}{-x}\right)}\right)}^{\frac{1}{x}}$ = {5}⇒ $ab\lim_{x\to 0}$ ${\left({\frac{-x}{2}}{\left(\ln{a}+\frac{1}{-x}+\ln{b}+\frac{1}{-x}\right)}\right)}^{\frac{1}{x}}$ = $ab\lim_{x\to 0} {\left(\frac{-x\ln{a}}{2}+\frac{1}{2}+\frac{-x\ln{b}}{2}+\frac{1}{2}\right)}^{\frac{1}{x}}$ = $ab\lim_{x\to 0}$ ${\left(1-\frac{x}{2}{\left(\ln{a}+\ln{b}\right)}\right)}^{\frac{1}{x}}$ = {11}⇒ $ab\lim_{x\to 0} {\left(1-\frac{x}{2}{\left(\ln{ab}\right)}\right)}^{\frac{1}{x}}$ ⇒ пусть $y = -\frac{x\ln{ab}}{2}$ и $\frac{1}{x}=-\frac{\ln{ab}}{2y}={\frac{1}{y}}^{-\frac{\ln{ab}}{2}}$ , тогда $ab\lim_{x\to 0} {\left({\left(1+y\right)}^{\frac{1}{y}}\right)}^{-\frac{\ln{ab}}{2}}$ = {03}⇒ $ab\lim_{x\to 0} e^{-\frac{\ln{ab}}{2}}$ = {04}⇒ $ab {\left(e^{\ln{ab}}\right)}^{-\frac{1}{2}}$ = {06}⇒ $ab \frac{1}{\sqrt{ab}}$ = $\sqrt{ab}$

    Школьные математические олимпиады.

  • Math us! Материалы по математике: подготовка к олимпиадам и ЕГЭ
  • Турниры Архимеда. 6-7 класс.
  • Математический праздник. 6-7 класс.