Pull to refresh
0
Евгений @krivolapovevgeniyread⁠-⁠only

Пользователь

Send message

Выбор серверов для системы видеонаблюдения

Reading time8 min
Views100K


Сегодня трудно найти компанию, не имеющую собственной системы видеонаблюдения. Во-первых, безопасность — превыше всего, а во-вторых, какому начальнику не хочется контролировать сотрудников в рабочее время? Как говорится, доверяй, но проверяй. Очевидно, что чем шире сеть видеокамер, тем выше требования к системе хранения и обработки данных. Давайте рассмотрим один из подходов к выбору соответствующего оборудования.
Читать дальше →
Total votes 18: ↑15 and ↓3+12
Comments25

Матрицы для камер видеонаблюдения. На что обращать внимание?

Reading time7 min
Views120K


Качество изображения видеокамеры во многом зависит от используемого в ней светочувствительного сенсора (матрицы). Ведь поставь хоть лучший процессор для оцифровки видео – если на матрице получено плохое изображение, хорошим оно уже не станет. Попытаюсь популярно объяснить, на что следует обращать внимание в характеристиках сенсора камеры видеонаблюдения, чтобы потом не было мучительно больно при взгляде на изображение…
Total votes 21: ↑15 and ↓6+9
Comments19

AHD видеонаблюдение – есть ли смысл переходить на AHD-Н?

Reading time8 min
Views62K


В области охранного видеонаблюдения происходят стремительные перемены. Старое аналоговое видео форматов D1 и 960Н навсегда исчезает в прошлом, как морально устаревшее – в современно мире мало кто использует технологии «вчерашнего дня», особенно когда дело касается безопасности. На смену старенькому аналогу пришли технологии AHD, HDCVI и HDТVI. Их огромный плюс был в том, что они без проблем способны работать с уже существующей инфраструктурой систем видеонаблюдения на базе коаксиального кабеля. Среди этих технологий максимальную популярность в итоге снискали AHD, HDCVI и чуть меньше HDТVI (из-за проблем с надлежащей поддержкой режима гибридности, когда с видеорегистратором одновременно работают аналоговые и IP камеры). AHD и HDCVI, благодаря очевидным преимуществам – универсальности (AHD еще и открытый формат, доступный всем желающим), ценовой доступности, развитой поддержке гибридных режимов и явному превосходству в эксплуатационно-техническом плане стали наиболее распространенными.
Читать дальше →
Total votes 5: ↑5 and ↓0+5
Comments19

Эволюция: от аналогового видеонаблюдения к цифровому. Часть 2

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

Формируем новый набор для видеонаблюдения.


Total votes 16: ↑14 and ↓2+12
Comments133

Эволюция: от аналогового видеонаблюдения к цифровому. Часть 1

Reading time5 min
Views20K
Добрый день, уважаемые читатели Гиктаймс.
Хочу поделиться своим опытом и наблюдениями по результатам эксплуатации двух систем видеонаблюдения: аналогового и цифрового. Я давно сделал выбор в пользу большого и теплого дома, поэтому постарался оснастить его всеми удобными функциями, доступными на рынке за адекватные деньги. Я расскажу о системе видеонаблюдения, которая одинаково хорошо будет работать как в доме, так и в квартире. Кто-то наверняка дополнит в комментариях, а кому-то мой материал позволит избежать ошибок. Поэтому начну с теории и подготовительной работы.



Читать дальше →
Total votes 14: ↑10 and ↓4+6
Comments128

Математика для искусственных нейронных сетей для новичков, часть 3 — градиентный спуск продолжение

Reading time6 min
Views57K
Часть 2 — градиентный спуск начало

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

Существует и другая версия алгоритма — стохастический градиентный спуск. Стохастический = случайный.
Читать дальше →
Total votes 28: ↑27 and ↓1+26
Comments2

Математика для искусственных нейронных сетей для новичков, часть 2 — градиентный спуск

Reading time8 min
Views131K
Часть 1 — линейная регрессия

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

Градиентный спуск


В прошлой части был показан пример вычисления параметров линейной регрессии с помощью метода наименьших квадратов. Параметры были найдены аналитически — , где — псевдообратная матрица. Это решение наглядное, точное и короткое. Но есть проблема, которую можно решить численно. Градиентный спуск — метод численной оптимизации, который может быть использован во многих алгоритмах, где требуется найти экстремум функции — нейронные сети, SVM, k-средних, регрессии. Однако проще его воспринять в чистом виде (и проще модифицировать).
Читать дальше →
Total votes 27: ↑26 and ↓1+25
Comments18

Математика для искусственных нейронных сетей для новичков, часть 1 — линейная регрессия

Reading time8 min
Views151K
Оглавление

Часть 1 — линейная регрессия
Часть 2 — градиентный спуск
Часть 3 — градиентный спуск продолжение

Введение


Этим постом я начну цикл «Нейронные сети для новичков». Он посвящен искусственным нейронным сетям (внезапно). Целью цикла является объяснение данной математической модели. Часто после прочтения подобных статей у меня оставалось чувство недосказанности, недопонимания — НС по-прежнему оставались «черным ящиком» — в общих чертах известно, как они устроены, известно, что делают, известны входные и выходные данные. Но тем не менее полное, всестороннее понимание отсутствует. А современные библиотеки с очень приятными и удобными абстракциями только усиливают ощущение «черного ящика». Не могу сказать, что это однозначно плохо, но и разобраться в используемых инструментах тоже никогда не поздно. Поэтому моей первичной целью является подробное объяснение устройства нейронных сетей так, чтобы абсолютно ни у кого не осталось вопросов об их устройстве; так, чтобы НС не казались волшебством. Так как это не математический трактат, я ограничусь описанием нескольких методов простым языком (но не исключая формул, конечно же), предоставляя поясняющие иллюстрации и примеры.

Цикл рассчитан на базовый ВУЗовский математический уровень читающего. Код будет написан на Python3.5 с numpy 1.11. Список остальных вспомогательных библиотек будет в конце каждого поста. Абсолютно все будет написано с нуля. В качестве подопытного выбрана база MNIST — это черно-белые, центрированные изображения рукописных цифр размером 28*28 пикселей. По-умолчанию, 60000 изображений отмечены для обучения, а 10000 для тестирования. В примерах я не буду изменять распределения по-умолчанию.
Читать дальше →
Total votes 54: ↑47 and ↓7+40
Comments43

Нейросеть в 11 строчек на Python

Reading time8 min
Views536K

О чём статья


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

Дайте код!


X = np.array([ [0,0,1],[0,1,1],[1,0,1],[1,1,1] ])
y = np.array([[0,1,1,0]]).T
syn0 = 2*np.random.random((3,4)) - 1
syn1 = 2*np.random.random((4,1)) - 1
for j in xrange(60000):
    l1 = 1/(1+np.exp(-(np.dot(X,syn0))))
    l2 = 1/(1+np.exp(-(np.dot(l1,syn1))))
    l2_delta = (y - l2)*(l2*(1-l2))
    l1_delta = l2_delta.dot(syn1.T) * (l1 * (1-l1))
    syn1 += l1.T.dot(l2_delta)
    syn0 += X.T.dot(l1_delta)


Слишком сжато? Давайте разобьём его на более простые части.
Читать дальше →
Total votes 47: ↑44 and ↓3+41
Comments17

Нейросеть на Python, часть 2: градиентный спуск

Reading time16 min
Views60K
Часть 1

Давай сразу код!


import numpy as np
X = np.array([ [0,0,1],[0,1,1],[1,0,1],[1,1,1] ])
y = np.array([[0,1,1,0]]).T
alpha,hidden_dim = (0.5,4)
synapse_0 = 2*np.random.random((3,hidden_dim)) - 1
synapse_1 = 2*np.random.random((hidden_dim,1)) - 1
for j in xrange(60000):
    layer_1 = 1/(1+np.exp(-(np.dot(X,synapse_0))))
    layer_2 = 1/(1+np.exp(-(np.dot(layer_1,synapse_1))))
    layer_2_delta = (layer_2 - y)*(layer_2*(1-layer_2))
    layer_1_delta = layer_2_delta.dot(synapse_1.T) * (layer_1 * (1-layer_1))
    synapse_1 -= (alpha * layer_1.T.dot(layer_2_delta))
    synapse_0 -= (alpha * X.T.dot(layer_1_delta))

Часть 1: Оптимизация


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

Суть происходящего в том, что обратное распространение не вносит в работу сети оптимизацию. Оно перемещает неверную информацию с конца сети на все веса внутри, чтобы другой алгоритм уже смог оптимизировать эти веса так, чтобы они соответствовали нашим данным. Но в принципе, у нас в изобилии присутствуют и другие методы нелинейной оптимизации, которые мы можем использовать с обратным распространением:
Читать дальше →
Total votes 33: ↑28 and ↓5+23
Comments5

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity