Обновить
19
Петр@ChePeter

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

Отправить сообщение
«Соотношение положительных к отрицательным примерам 1 к 4, 8000 положительных и 2000 отрицательных.» — чего то так.
Т.е. FreeBSD 10 проверку ФСТЭК тоже прошла?
Хотел в статье по последней метке провести аналогию 1 курс — MLP, 2 курс -CNN ну и т.д. и посмотреть как можно/нельзя учить «старшекурсников», но реально не хватает мощности карты, очень долго.
На будущее неплохое исследование.
Если оставить только последние «9» (5949 шт) в интересующем варианте (0..01..12..23...78..89..9) т.е. последнюю последовательность «9», а начало вернуть, как в исходной последовательности, тогда получится результат выше.

PS. Извиняюсь за телеграфный стиль
Проверка гипотезы
from keras import backend as K_B
from keras.datasets import mnist
from keras.layers import Input, Dense, Dropout
from keras.models import Sequential
from keras.optimizers import RMSprop
from keras.utils import np_utils
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

batch_size = 12
epochs = 12
hidden_size = 512

(X_train, y_train), (X_test, y_test) = mnist.load_data()

num_train, width, height = X_train.shape
num_test = X_test.shape[0]
num_classes = np.unique(y_train).shape[0]

X_train = X_train.astype('float32') 
X_test = X_test.astype('float32')
X_train /= 255.
X_test /= 255.
X_train = X_train.reshape(num_train, height * width)
X_test = X_test.reshape(num_test, height * width)

XX_train = np.copy(X_train)
yy_train = np.copy(y_train)
XX_test = np.copy(X_test)
yy_test = np.copy(y_test)

perm = np.arange(num_train, dtype='int')
j = 0
for k in xrange(num_classes):
    for i in xrange(num_train):
        if (yy_train[i] == k):
            perm[j] = i
            j += 1

for k in xrange(num_train):
    X_train[k,...] = XX_train[perm[k],...]
    y_train[k] = yy_train[perm[k]]

Y_train = np_utils.to_categorical(y_train, num_classes)
Y_test = np_utils.to_categorical(y_test, num_classes)

model = Sequential()
model.add(Dense(512, activation='relu', input_shape=(width * height,)))
model.add(Dropout(0.2))
model.add(Dense(512, activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(num_classes, activation='softmax'))

model.compile(loss='categorical_crossentropy',
              optimizer=RMSprop(), # RMSprop(),'adam'
              metrics=['accuracy'])

history = model.fit(X_train, Y_train,
                    shuffle = False,
                    batch_size=batch_size,
                    epochs=epochs,
                    verbose=2,
                    validation_data=(X_test, Y_test))

for n in xrange(10):    
    j = 0
    i = 0
    for k in xrange(num_test):
        if (yy_test[k] >= 8 ):
            X_test[j,...] = XX_test[k,...]
            y_test[j] = yy_test[k]
        else:
            X_test[j,...] = X_test[i,...]
            y_test[j] = y_test[i]
            i += 1
        j += 1
    Y_test = np_utils.to_categorical(y_test, num_classes)

    score = model.evaluate(X_test, Y_test, verbose=0)
    print ' remove ', 9 - n
    print('Test accuracy:', score[1])

fedorro

Если сделать всё тоже, но в тестовой последовательности оставить только «8» и «9» то сеть совсем ничего не понимает. Т.е. тренируем на упорядоченной последовательности, а результат получаем на test, но без некоторых цифр.
листинг
Train on 60000 samples, validate on 10000 samples
Epoch 1/12
22s — loss: 12.7203 — acc: 0.2105 — val_loss: 14.2887 — val_acc: 0.1135
Epoch 2/12
22s — loss: 13.0790 — acc: 0.1885 — val_loss: 14.4487 — val_acc: 0.1028
Epoch 3/12
22s — loss: 11.0910 — acc: 0.3115 — val_loss: 14.4550 — val_acc: 0.1028
Epoch 4/12
22s — loss: 11.5997 — acc: 0.2798 — val_loss: 14.6790 — val_acc: 0.0892
Epoch 5/12
22s — loss: 10.4851 — acc: 0.3490 — val_loss: 14.6563 — val_acc: 0.0892
Epoch 6/12
22s — loss: 9.7669 — acc: 0.3937 — val_loss: 14.5344 — val_acc: 0.0982
Epoch 7/12
22s — loss: 9.6686 — acc: 0.3999 — val_loss: 14.5332 — val_acc: 0.0982
Epoch 8/12
22s — loss: 9.5976 — acc: 0.4043 — val_loss: 14.5219 — val_acc: 0.0982
Epoch 9/12
22s — loss: 7.6871 — acc: 0.5226 — val_loss: 14.4882 — val_acc: 0.1009
Epoch 10/12
22s — loss: 9.9656 — acc: 0.3814 — val_loss: 14.5188 — val_acc: 0.0982
Epoch 11/12
22s — loss: 9.6053 — acc: 0.4038 — val_loss: 14.5128 — val_acc: 0.0982
Epoch 12/12
22s — loss: 9.5696 — acc: 0.4060 — val_loss: 14.4895 — val_acc: 0.0982
remove 9
('Test accuracy:', 0.00020000000000000001)
remove 8
('Test accuracy:', 0.00020000000000000001)
remove 7
('Test accuracy:', 0.00020000000000000001)
remove 6
('Test accuracy:', 0.00020000000000000001)
remove 5
('Test accuracy:', 0.00020000000000000001)
remove 4
('Test accuracy:', 0.00020000000000000001)
remove 3
('Test accuracy:', 0.00020000000000000001)
remove 2
('Test accuracy:', 0.00020000000000000001)
remove 1
('Test accuracy:', 0.00020000000000000001)
remove 0
('Test accuracy:', 0.00020000000000000001)

По очереди удаляем по одной цифре из test последовательности
for n in xrange(10):    
    j = 0
    i = 0
    for k in xrange(num_test):
        if (yy_test[k] != 9 - n ):
            X_test[j,...] = XX_test[k,...]
            y_test[j] = yy_test[k]
        else:
            X_test[j,...] = X_test[i,...]
            y_test[j] = y_test[i]
            i += 1
        j += 1
    Y_test = np_utils.to_categorical(y_test, num_classes)

    score = model.evaluate(X_test, Y_test, verbose=0)
    print ' remove ', 9 - n
    print('Test accuracy:', score[1])


листинг
Train on 60000 samples, validate on 10000 samples
Epoch 1/12
22s — loss: 12.7232 — acc: 0.2104 — val_loss: 14.2887 — val_acc: 0.1135
Epoch 2/12
22s — loss: 14.3070 — acc: 0.1124 — val_loss: 14.2887 — val_acc: 0.1135
Epoch 3/12
22s — loss: 14.3070 — acc: 0.1124 — val_loss: 14.2887 — val_acc: 0.1135
Epoch 4/12
22s — loss: 14.3070 — acc: 0.1124 — val_loss: 14.2887 — val_acc: 0.1135
Epoch 5/12
22s — loss: 14.3070 — acc: 0.1124 — val_loss: 14.2887 — val_acc: 0.1135
Epoch 6/12
22s — loss: 14.3070 — acc: 0.1124 — val_loss: 14.2887 — val_acc: 0.1135
Epoch 7/12
22s — loss: 14.3070 — acc: 0.1124 — val_loss: 14.2887 — val_acc: 0.1135
Epoch 8/12
22s — loss: 14.3070 — acc: 0.1124 — val_loss: 14.2887 — val_acc: 0.1135
Epoch 9/12
22s — loss: 14.3070 — acc: 0.1124 — val_loss: 14.2887 — val_acc: 0.1135
Epoch 10/12
22s — loss: 14.3070 — acc: 0.1124 — val_loss: 14.2887 — val_acc: 0.1135
Epoch 11/12
22s — loss: 14.3070 — acc: 0.1124 — val_loss: 14.2887 — val_acc: 0.1135
Epoch 12/12
22s — loss: 14.3070 — acc: 0.1124 — val_loss: 14.2887 — val_acc: 0.1135
remove 9
('Test accuracy:', 0.1278)
remove 8
('Test accuracy:', 0.12670000000000001)
remove 7
('Test accuracy:', 0.12839999999999999)
remove 6
('Test accuracy:', 0.12659999999999999)
remove 5
('Test accuracy:', 0.1258)
remove 4
('Test accuracy:', 0.12759999999999999)
remove 3
('Test accuracy:', 0.12790000000000001)
remove 2
('Test accuracy:', 0.1285)
remove 1
('Test accuracy:', 0.0)
remove 0
('Test accuracy:', 0.12709999999999999)
Если оставить только последние «9» (5949 шт) MLP учится и результат
step 0
('Test accuracy:', 0.97360000000000002)
('Test accuracy:', 0.9758)
('Test accuracy:', 0.77300000000000002)
step 1
('Test accuracy:', 0.97460000000000002)
('Test accuracy:', 0.97509999999999997)
('Test accuracy:', 0.88370000000000004)
step 2
('Test accuracy:', 0.97550000000000003)
('Test accuracy:', 0.97299999999999998)
('Test accuracy:', 0.83389999999999997)

Эта последовательность «9» в конце приводит к переобучению, но предыдущие результаты не затираются, когда они есть.
Статья, в том числе, о том, что на одинаковой последовательности MLP не учится совсем.
«Тупой код», как правило, написан кем то другим.
Про то и речь!
Что реестр недвижимости один и у одного.
И неважно, вешают Вам лапшу онлайн или на бумаге или еще как.
Вы должны верить одному(человеку/конторе/машине и т.д.) и эту проблему блокчейн решает.
Ни владельцы реестра, ни его управляющие, ни тех персонал не смогут просто так его изменить.
Но если все, то кто ведет у себя реестр(блокчейновский), вдруг решат, что этот домик не Ваш, то так тому и быть. Вот такое прямое народовластие ( почти суд Линча))).
Это они до поры до времени чужие и могут стать своими родными в любой момент времени.
Вот приехали/послали Вас в страну… ляндию и хотите купить/арендовать что то для себя или корпорации и в местном реестре Вы вынуждены верить тому перцу, что принесет Вам бумажку-выписку и проверить его ну никак. Так что для учета недвижимости блокчейн самое оно.
«Стянул ключ» про идентификацию. А я про учёт.
Сейчас можно купить недвижимость и только потом узнать про нее много интересного.
Блокчейн хорош для учета прав на недвижимость. Просто и надежно проследить всю историю участка земли, как был образован, как делился или присоединялся, кто владел им и/или частями и т.д.
Трудно подделать и легко проверить.
Любой владелец недвижимости может держать у себя всю базу и мониторить все изменения и так содержать инфраструктуру.

Не совсем убедили.
Алгоритм то заявленные требования обеспечивал и то, что при определенных параметрах нет секретности, так и кривые есть сингулярные.
Есть рекомендованные ГОСТ параметры кривой, так и на веру их и принимают все.
И тот же NIST всегда указывал, что параметры a,b,… выбраны по критерию простоты вычислений.
В биткойне так вообще a=0 ( проще некуда) и что-то мне подсказывает, что не спроста ))
Но я еще не встречал, что бы в основе уязвимости лежал на баг, а закладка.
Поправьте меня, если вдруг что то не заметил
Именно баги превращаются в уязвимости, увы
Ага, сколько лет проверялся OpenSSL?
habrahabr.ru/sandbox/100878
Этой ошибке много лет и это в пакете за которым следят миллионы глаз.
Если Вы про сделки, то возможно. А я про учет «финансовых вложений».
Если Вы меняете фантик на что угодно — вполне легальная сделка. Но что бы сделка с криптой была легальной, т.е. что бы Дядя Сэм и Тётя Дуся не приставали потом, нужно правильно назвать крипту в существующих терминах и правильно отразить сделку в учете. Вот про это правильное наименование и идет спор с автором. И никак не про сделки.
Если Вы деньги со счета сняли и ничего легального не положили, то с их точки зрения это плохо и автор топика предлагает назвать то, что положили «финансовые вложения», мол все верно. А мне кажется, исходя из внимательного многолетнего прочтения текстов над моей подписью, что биткойн не попадает в раздел «финансовые вложения».
Я про право получить деньги или выгоду, а не отдать или что совершить.
Любой из этих товарищей в любое время может покинуть ряды майнеров, и они все сразу могут покинуть и никаких претензий к ним.
«Право создать кошелек» — смешно, оно у Вас и без них есть.
и по закону не так.
А еще валютный контроль будет
Это нужно сохранить для потомков
«С точки зрения гражданского права РФ криптовалюта — имущество.
Для целей бухгалтерского учета как указывалось выше криптовалюта может рассматриваться в качестве «финансового вложения»»

Никогда так не делайте! Вас посадят!
Почему биткойн не является финансовым вложением
Цитата из документов любезно представленных автором:
«2. Для целей настоящего Положения для принятия к бухгалтерскому учету активов в качестве финансовых вложений необходимо единовременное выполнение следующих условий:
наличие надлежаще оформленных документов, подтверждающих существование права у организации на финансовые вложения и на получение денежных средств или других активов, вытекающее из этого права;»
Т.е. финансовое вложение(в бытовом смысле, купил чего-то ненужного сейчас) тогда является финансовым вложением в смысле учета, когда предоставляет какое либо право (документально подтвержденное! важно) получить деньги или выгоду в будущем.
Биткойн не предоставляет никаких прав и тем более документально подтвержденных. Это так его специально задумали, что бы никто не контролировал и не мог установить свои правила, ну и обратная сторона — полное отсутствие каких либо обязанностей и прав у участников этого дела. Биткойн дает возможность — но это, согласитесь, нечто иное.

Пояснения к терминологии (автор не владеет, бывает)
Практикой называют не применение знаний, например прочел Страуструпа — теория, написал программку — практика. Так в быту.
Юристы практикой называют судебную практику, решения судов и документы ВС РФ. И дело это устроено так:
Вы отразили в балансе биткойн, сдали в налоговую, она вас послала, вы пошли в суд Х и выиграли (наняв например автора, вполне профи)) и довольны жизнью.
Но в другом городе нашей необъятной родины другой суд Н вынес другое (отличное от Вашего) решение и там тоже кто то счастлив и не очень.
И через пару лет ВС РФ изучив этот бардак принимает документ (письмо пишет коллегам судьям) что мол прав тот, другой суд Н и Вы ВНЕЗАПНО! (это больно после счастья) обнаруживаете что Вы должны немерено денег ( что плохо, но это еще не все) что Вы не уплатили громадную кучу налогов (ст 199 УК кажется) и самое страшное стали валютным, ну этим, как это, нарушителем и теперь должны кругом — денег, сесть, и никто Вам не открывает счета и не дает кредитов.
Вот именно поэтому про биткойны нет практики, все грамотно представляют себе этот путь и трезво оценивают его реальность и пусть кто то другой его пройдет и тогда конечно мы ему скажем спасибо.

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

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность

Специализация

Бизнес-аналитик, Аналитик по данным
Ведущий