From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:403:4789::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id ECJjARtyyWSmFwAASxT56A (envelope-from ) for ; Tue, 01 Aug 2023 22:59:07 +0200 Received: from aspmx1.migadu.com ([2001:41d0:403:4789::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id yPCBARtyyWSBggEA9RJhRA (envelope-from ) for ; Tue, 01 Aug 2023 22:59:07 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 9483846BB9 for ; Tue, 1 Aug 2023 22:59:06 +0200 (CEST) Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=sA03xBR4; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1690923546; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=y1KN36bM/270cGTjRDGsTBQMmp3BMAie6n/khGFexMA=; b=tIlFJVS5QH+6nKR2dwjpuRdZkRCrWnifXDLk3UxVVw126ZSJlFID/aUwhy3QcPmhies8gu kRI70QGF8v+tL836BM7SP8aYaBulFo5u9sCAl7QJ+0+nnLd/YXx0RFjVL7jq8BM00C1yHn O3mzdpQTqoktF5zYxG4+PayTCqoWOXsE3WaMQ+53cpj7OdfyWEpw3NQeGiZvxHNuf0PwLE OSzlQTtjGlCb71axU0nh6fyJYPVRQPrX1j7i5qP2Mv3vQK0Fb/PnvIoAJEKSD6FvhKYF80 y5aQJ8npDBSkH5bS6xxTZUZTyeRXArvS3Z/vign5kyeJRLLrV/PBTVOc/Me5Gw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=sA03xBR4; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=key1; d=yhetil.org; t=1690923546; a=rsa-sha256; cv=none; b=XDkfoO7vCE+Tp5v7AvLr7hmsWX+mX5/IBvXT//AmrWU4rRFYy5oL0zlHhoXKltV1x+vnqZ KiNdKZ1FsBy7Oe7g7B5P12NbDm5RnmDrEW0JTv3Jz2JSVE48tzGT2FvyuyMLvLp+4ECJ/a 58SKsXD0V/O8I/nAl4ukBP40ZaPVhB6lckZLRy5dVMAGf4XVQ63JsmHHc6HT9hLkecRfFs bXxSZZOwM/nL4hljtXbV+JFX1k8NsRO0hraHSVAZ307RaVWAiKQM+m56QhN8rm5w6zueoY o5WHM3+r+nDBsYyvqr5y73o+Xu2WdD7KKJwHnkv/D0eLClDYtDWOEABkejFU9Q== Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qQwRp-00020u-Bm; Tue, 01 Aug 2023 16:58:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qQwRn-00020k-5i for guix-devel@gnu.org; Tue, 01 Aug 2023 16:58:27 -0400 Received: from mail-oo1-xc33.google.com ([2607:f8b0:4864:20::c33]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qQwRl-0004N2-Ly for guix-devel@gnu.org; Tue, 01 Aug 2023 16:58:26 -0400 Received: by mail-oo1-xc33.google.com with SMTP id 006d021491bc7-56ca9a337caso1732725eaf.1 for ; Tue, 01 Aug 2023 13:58:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1690923503; x=1691528303; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=y1KN36bM/270cGTjRDGsTBQMmp3BMAie6n/khGFexMA=; b=sA03xBR4FjKVstLbULLmmX7Qe1RTnRHuiGl/NH7+SnSsTYQh4WrRQrHBGoUt/4/s3G to3vPprBjBI0JSyFizSSAAMRW/5qgXra5oJZQPRrvVd6rhQFKR6SlCj70US12VRfIlJ/ xtMvN7HcmdeCrZz1QHU4/tWEa29TZ7pVfDJ2BeI0PN7v6zm9u9i+69cEE5m76J7S3GHI iKPsTtz9qGV5biUwpJL3yRuv1uwsDIkmSNmJV3QsQVqELeYsuLbJQ6vDxQ94egyFu3dX ObA+dDpglzdOAK8NkjelGin2czlBr1K1RKrVS/U6aRfNEeK7BPnFozh9npwl+IIgWg0Z VBdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690923503; x=1691528303; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=y1KN36bM/270cGTjRDGsTBQMmp3BMAie6n/khGFexMA=; b=HEyzyem89oV8Md4NhC2oA8Wir6GsZq3/f2sm6zlpctXJlV88Hrt1zqXVsHLN/H+AEG Q+wF3d42lhEV030ZOHyV6P/huBaG/X292h3T9Ix/p9rWMKM4c5qrSfgr2Kmaq4BsSdwp qDIMcTfkZlo6lJZE5cE0G/q4zBY7mV23XTv2pb6TubSnj3eG7ah3h4mxytj1egCglIY3 OvxClVdlstJpm2tEOo6yDV1R8DMP/cc8iohouDFFVS7U5H+BeGfhtNX72Rhs4imYFn0M KcscAWYMobOUf3bLUCH0/wp14sZwfmL9adqKmxtNLBUQ1+BHFGIb1ZHsS6mopgeASzI/ OBpA== X-Gm-Message-State: ABy/qLYrcQeKuOw/xyw8xEhne50chlldAHwk5A9cAB7onqk2amq2wrt9 kYAioPpmdMfoAoR9mI1YA9EkF3CRn+6LPR9+y50y1kq4rqw= X-Google-Smtp-Source: APBJJlGEJ4BWFceA1yB/Ns6VDBRCG0qw090DvB0rlB4MGgzvxrNRWmW+DRUWjTH6MWI4yi6qUDmcuKX+NXGMie0R3Es= X-Received: by 2002:a4a:6c09:0:b0:56d:10bb:c2d3 with SMTP id q9-20020a4a6c09000000b0056d10bbc2d3mr129493ooc.0.1690923502856; Tue, 01 Aug 2023 13:58:22 -0700 (PDT) MIME-Version: 1.0 References: <20230801203700.67ef6l3ibg27wzpk@X-kone> In-Reply-To: <20230801203700.67ef6l3ibg27wzpk@X-kone> From: Nathan Dehnel Date: Tue, 1 Aug 2023 15:58:11 -0500 Message-ID: Subject: Re: Binary descriptors for OpenCV To: Saku Laesvuori Cc: guix-devel@gnu.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=2607:f8b0:4864:20::c33; envelope-from=ncdehnel@gmail.com; helo=mail-oo1-xc33.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: guix-devel-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Spam-Score: -6.74 X-Spam-Score: -6.74 X-Migadu-Queue-Id: 9483846BB9 X-Migadu-Scanner: mx1.migadu.com X-TUID: EKZSY+o9TBj9 >If you know how to convert the blob to weights in the neural network (something the program has to do to make any use of the blob) and know the error function, you can continue the training with new data. Yeah, I get that, but you don't necessarily know what the weights mean. Let's charitably assume you know the blob works on image data (instead of audio data or whatever). Do you know if it needs to be trained on images of a particular size, or color depth, or encoding, or color format, etc.? And what about models for more complex data than images like genetic data? How do you know you're not going to end up with a network that spews out invalid garbage if you re-train it with things that are incompatible with the original training dataset? And how do you know that, beyond trial and error, unless you have the original dataset? On Tue, Aug 1, 2023 at 3:37=E2=80=AFPM Saku Laesvuori w= rote: > > > Is this even practically possible? How do you re-train a blob you know > > nothing about? To me this sounds similar to saying a compiled binary > > is free software if the license allows you to decompile it and > > deobfuscate it. > > If you know how to convert the blob to weights in the neural network > (something the program has to do to make any use of the blob) and know > the error function, you can continue the training with new data. > > This is not any different from training the model from scratch. In both > cases we begin with some set of initial weights for a huge polynomial, > take a sample of our training data, compute the polynomial for it and > tweak the weights a bit if the result was not what we wanted. The only > difference is that when training from scratch we begin with very bad > guesses for all the weights. When we are tuning the blob we begin with > much better guesses that are closer to the values we would actually > want. > > The difference to a compiled binary program is that you would want to > edit it in the source code form. You really would not want to edit the > neural network by editing the original training data and retraining the > entire network from scratch. The data set probably contains thousands, > tens of thousands or even more random pictures that you would have to go > through and see if they represent the data and results you want. It > would be much easier to test whether the network gives the correct > results and train it with new data that you know describes your problem > better.