0 Вопрос: распознавание жестов Wi-Fi, дл, мл, питон, сп,

вопрос создан в Mon, Mar 18, 2019 12:00 AM

У меня есть набор данных, похожий на этот (7500, 200, 30, 3)

7500 выборок (существует тензор формы 200,30,3), который связан с данными CSI (тип данных Wi-Fi для распознавания жестов). Имеет 150 различных меток (жестов), цель которых состоит в классификации Я использовал CNN by keras для классификации, я столкнулся с огромным переоснащением

   def create_DL_model():
    # input layer
    csi = Input(shape=(200,30,3))
    # first feature extractor
    x = Conv2D(64, kernel_size=3, activation='relu',name='layer1-01')(csi)
    x=BatchNormalization()(x)
    x = MaxPooling2D(pool_size=(2, 2),name='layer1-02')(x)
    x = Conv2D(64, kernel_size=3, activation='relu',name='layer1-03')(x)
    x=BatchNormalization()(x)
    x = MaxPooling2D(pool_size=(2, 2),name='layer1-04')(x)
    x=BatchNormalization()(x)
    x = Conv2D(64, kernel_size=3, activation='relu',name='layer1-05',padding='same')(x)
    x=Conv2D(32, kernel_size=3, activation='relu',name='layer1-06',padding='same')(x)
    x=Conv2D(64, (3,3),padding='same',activation='relu',name='layer-01')(x)
    x=BatchNormalization()(x)
    x=MaxPool2D(pool_size=(2, 2,),name='layer-02')(x)
    x=Conv2D(32, (3,3),padding="same",activation='relu',name='layer-03')(x)
    x=BatchNormalization()(x)
    x=MaxPool2D(pool_size=(2, 2),name='layer-04')(x)
    x=Flatten()(x)
    x=Dense(16,activation='relu')(x)
    keras.layers.Dropout(.50, seed=1)
    probability=Dense(150,activation='softmax')(x)
    model= Model(inputs=csi, outputs=probability)
    model.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy'])
    return model

как вы видите, я использовал выпадение для плотного слоя, раннюю остановку и пакетную нормализацию для борьбы с переоснащением, как вы все еще видите, есть проблема

image

после перекрестной проверки у меня есть точность около 70 (некоторые документы получили точность 90 процентов, однако у нас есть 150 ярлыков, и кажется, что 90 процентов это действительно хороший результат, они использовали мета-обучение, которое я не мог использовать), есть ли способ, которым вы можете порекомендовать

большое спасибо

    
0
  1. 7500 - это несколько примеров, особенно с 150 метками. Я думаю, что даже если они сбалансированы (50 на этикетку), это не сработает. Говоря об этом, проверьте баланс класса. Попробуйте увеличить и перетасовать данные. Выпадение может быть немного выше на .50 ,
    2019-03-18 11: 22: 35Z
  2. tnx для вашего быстрого ответа, он сбалансирован, я перемешал данные, случайный порядок, вы имеете в виду это? что вы имеете в виду под увеличением, вы имеете в виду добавление шума или ...? Вы правы, поэтому авторы использовали мета-обучающий подход. Есть ли какой-нибудь способ, которым вы можете порекомендовать реализовать мета-обучение keras в python
    2019-03-18 12: 25: 27Z
  3. Что ж, по дополнению я был очень расплывчатым ... вы должны найти свой собственный способ искусственного увеличения выборок, потому что более аутентичные образцы не доступны. Хорошо, попробуйте добавить очень маленький шум к копиям. Тасование, как при кормлении в случайном порядке, действительно нормально. Что касается мета-обучения, то оно очень широкое.
    2019-03-18 13: 02: 17Z
  4. еще раз для быстрого ответа, можете ли вы дать мне знать, как я могу использовать мета-обучение для этого
    2019-03-18 14: 16: 02Z
  5. Вы имеете в виду в целом? Или структура, называемая мета-обучение? Я знаю только это определение как общее понятие ...
    2019-03-18 22: 30: 00Z
0 ответов                              0                         
источник размещен Вот